短縮版:
ノードのタグの配列を取得し、これらのタグの少なくとも 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どこにありますか)。123Node ID
この関数はカスタム パスを透過的に処理するので便利です。そのため、ノードに " " を使用してアクセスするためのカスタム パスがある場合、" www.yoursite.com/my-great-page" の代わりにそのページへのリンクがwww.yoursite.com/node/123自動的に作成されます。