[WordPressサブページのリストを表示する

Last Updated:2023年07月16日| 2のコメント

WordPressのページ編集画面で「ページのプロパティ「オプションを見ると」上位「ページを設定できるプロパティがあります。ページを特定の親ページ(親ページ)の子ページ(子ページ)に設定してグループ化することができます。

WordPress - トップページに設定

親ページを設定するオプションは、発行されたページがある場合にのみ表示されます。 上記のように設定すると、現在のページがParentページのサブページ(子ページ)になります。 このように一つの親ページに複数の子ページを設定することができます。 親ページとサブページにサブページのリストを表示する方法を説明します。

テーマでサポートしている場合、

特定のテーマ(例えば、最も人気のある有料のテーマである AVADA)では、上位 - 下位ページを設定すると、自動的にサイドバーに表示されている場合があります。 例えば、 Avada テーマでページにサイドバーが表示されるようにする場合は、自動的にサブページリスト(ある場合)を表示します。

Child Pages List in AVADA in WordPress

サブページでは、現在のサブページの色が変わって表示されます。

ユーザーコードを使用する

ユーザーコードを使用して、サブページ(子ページ)のリストをサイドバーのページ内に表示することができます。 次のようなコードを関数ファイルに追加するようにします。

function wpb_list_child_pages() {

global $post;

if ( is_page() && $post->post_parent )

$childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->post_parent . '&echo=0' );
else
$childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->ID . '&echo=0' );

if ( $childpages ) {

$string = '<ul>' . $childpages . '</ul>';
}

return $string;

}

add_shortcode('wpb_childpages', 'wpb_list_child_pages');
// Source: wpbeginner

[wpb_childpages] ショートコードをサイドバーのウィジェットやページ内に追加して、サブページのリストを表示することができます。

List Child Pages in WordPress有料テーマ販売サイト Themeforestで長い間1位を走っている Avada(AVADA) テーマは実際に適用みた様子です。 レイアウトが満足ですね。 CSSを使用してレイアウトを調整してくれるようです。

次のコードを使用してページのテンプレートに追加することもできます。

<?php wpb_list_child_pages(); ?>

その後、テーマは自動的にサブページを検出して表示します。

プラグインの使用

上記の方法がうまくいかない場合は、 Child Pages Shortcodeのようなプラグインを使用することができます。

Child Pages Shortcode in WordPress

このプラグインをインストールして有効にすると、次のショートコードを使用することができます: [child_pages]

このショートコードをサイドバーウィジェットに適用してみると次のように面白い形で表示されます。

Child Pages List in WordPress

このプラグインを使用する場合、サブページには、リストが表示されません。 フィルタを使用して表示されるコンテンツとフォーマットを変更することができます。 詳しい使い方は、プラグインのページを参照してください。

メモ:

 


2のコメント

コメント

  1. こんにちは。 まさにテーマを自分で作っている初心者です。
    ページではなく、アーカイブ(カテゴリ)内のリスト(リスト)の上に、該当カテゴリ内のサブカテゴリのリストを一覧表示したいのですが。
    ページではないのでそれは適用されません。

    応答