短縮版:
ノードのタグの配列を取得し、これらのタグの少なくとも 1 つを使用する最初の 10 個のノードを取得し、これらの 10 個の結果それぞれのリンクを出力します。
詳細版:
まず、変数 " $node
" は、特定のノード (ページ ノードやストーリー ノードなど) に関するデータを含むオブジェクトです。たとえば、" $node->title
" はそのノードのタイトルになります。
" $node->taxonomy
" テストは、ノードがタグ付けされていることです (タグがない場合、同じタグを使用して他のノードを取得できないためです)。そのノード/ページ/ストーリーに関連付けられた 1 つまたは複数のタグがある場合$node->taxonomy
、array
.
SQL クエリについて: " node
" は、すべてのノードのベース フィールド (非 CCK) を格納するデータベース テーブルです。" term_node
" は、タグ (" " と呼ばれるtaxonomy term
) とノードの組み合わせを含むデータベース テーブルです。
両方の表で、" nid
" は " unique Node ID
" (内部で自動インクリメントされた数値) です。この列は両方のテーブルにあるため、このようにテーブルが結合されます。
" term_node
" の " tid
" は " unique Term ID
" です (これは内部で自動インクリメントされた数値でもあります)。
" node
" テーブルは別名 " n
" であるため、" n.nid
" は " " を意味しthe Node ID stored in table node
ます。" term_node
" テーブルは別名 " t
" であるため、" t.tid
" は " " を意味しthe Term ID stored in table term_node
ます。
" foreach
" ループはタグの配列を通過し、ノードが使用する各タグのTermIDを抽出して SQL クエリに追加し、implode は文字列に変換します。
ループは、各タグの SQL クエリの一部を変数$tids
に格納し、実際の値を変数に格納します$args
。引数が SQL クエリとは別に渡されると、Drupal データベース呼び出しがより安全になるためです。" %d
" は " " を意味しますinteger number
。
" db_query_range
" は、データベース内の複数の行を選択する関数です。ここで、" 0 10
" は " " を意味しretrieve the first 10 results
ます。
" " ループdb_fetch_object
内の " " は、while
各結果を取得し$o
、オブジェクトである変数 " " に格納します。
したがって、" " には、SQL クエリによって取得された$o->title
列 " " の値が含まれます。title
関数 " l
" は、HTML リンクのコードを作成する drupal 関数です。最初の引数はリンクの名前で、2 番目の引数は drupal パスです: Drupal では、" www.yoursite.com/node/NodeID
"を使用してデフォルトで任意のノードにアクセスできます。これがパス " " を与える理由です(" "はnode/123
どこにありますか)。123
Node ID
この関数はカスタム パスを透過的に処理するので便利です。そのため、ノードに " " を使用してアクセスするためのカスタム パスがある場合、" www.yoursite.com/my-great-page
" の代わりにそのページへのリンクがwww.yoursite.com/node/123
自動的に作成されます。