1

wordpress を使用して Web サイトを作成しており、すべてのポートフォリオ アイテムを表示するポートフォリオ ページがあります。これは、親ページ 'ポートフォリオ' のサブページで構成されています。サブページとそのコンテンツをポートフォリオの親ページに表示するには、特別なクエリが必要です。これを行うには、ポートフォリオ ページのページ テンプレートを作成するだけです。その上で、次のようにデータベースにクエリを実行しました。

$parent = post->ID; //portfolio page ID
query_posts('post_type=page&post_parent='.$parent);//grab those children of portfolio

素晴らしい。ただし、サーバーやワードプレスへの負担が少ないため、そのような仕事には pre_get_posts を使用する方が良いことを時間の経過とともに学びました。難しいですが、可能です:

function portfolioloop($query){

if ($query->is_page( 'portfolio') ){//query will only effect my portfolio page

 $children = get_pages(array('child_of' => 35, 'echo' => 0) ); 
    // i dont think post->ID; works here. 
   //35 is the post ID of portfolio. Let me know if im wrong.

  // get and add the children id's to array. only id's is needed. 
  for($i = 0; $i < sizeof($children); ++$i) { 
  $portfolioitems[] = $children[$i]->ID; //$portfolioitems is a list of id's only. thats what we want
   } 

   $query->set('post__in', $portfolioitems);

 }


}
add_filter('pre_get_posts','portfolioLoop');

残念ながら、それはページが見つからないことを返します。私は何を間違えましたか?お役に立てることがあれば、よろしくお願いします。

4

0 に答える 0