web-dev-qa-db-ja.com

スラッグでIDではない子ページをリストしますか?

特定のページIDの子ページを表示するためにwp_list_pages関数を使用しようとしています。私はこれを簡単にすることができました、しかし今私はそれに関して問題を見つけました。私はサイトのWordpressネットワークを運営しています(合計8)。それぞれに該当する3つのサブサイトを持つ2つのメインブログがあるため、私は2つのテーマフォルダしか必要としないところにこれを設定しようとしています。そのため、各サイトでテーマが重複しないように、テーマファイルにできるだけ多くの動的呼び出しを行うようにしています。

私のサイドバーでは、私は次のコードを使用しています。

<ul>
<?
    wp_list_pages('orderby=name&depth=1&order=DESC&show_count=0&child_of=10&title_li=');
?>
</ul>

現在実行している問題は、各サブサイトでページIDが変更されていますが、ほとんどのサイトマップでは変更されていないことです。私のメインサイトではchild_of = 10は私のサイドバーに適切なサブページを表示しますが、私のサブサイトではchild_of = 10は別のページであるので私は適切な子ページを表示させていません。私は投稿を引き込むことに関して同様の問題を抱えていました、しかし、私は以下をすることができました:

<?
    $category = get_category_by_slug('news');
    wp_list_categories('orderby=name&order=DESC&show_count=0&exclude=53&title_li=&child_of='.$category->term_id);
?>

私はページIDではなく子ページを識別するためにページスラッグを使用するというwp_list_pagesのための同様の解決策を達成しようとしています。 Google/hereで見つけたいくつかの投稿を試してみましたが、運が悪かったです。誰かが私を助けてくれることを願っています。

1
Danny

ページオブジェクトを取得してそのIDをchild_ofパラメータとして渡すためにget_page_by_title()を使用しないのはなぜですか。

実際のスラグを使いたいのなら、get_page_by_path( $slug )がうまくいくはずです。

そう:

if ( $page = get_page_by_path( 'your-page-slug' ) ){
  wp_list_pages( 'orderby=name&depth=1&order=DESC&show_count=0&child_of=' .$page->ID . '&title_li=' );
}
1
Tom Auger