私はこれを理解しようとしている私の机のすべての午後に頭をぶつけていました。カスタム投稿タイプをすべて設定し、階層を「true」に設定して、親を割り当ててバックエンドで関係を確認できます。これは素晴らしいです。
私の特別な新しい投稿タイプの子供(および兄弟)をリストしたい場合を除いて。このコードを見つけました
<?php if($post->post_parent)
$children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
else
$children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
if ($children) { ?>
<ul>
<?php echo $children; ?>
</ul>
<?php } ?>
私がそれをページのページテンプレートに入れたとき、これは完璧に機能します。しかし、カスタム投稿テンプレートにはスクワットが返されます。私は "$ post-> post_parent)"が問題になるかもしれないと思った - しかしそれはそうではない:
<h1 class="page-title"><a href="<?php echo get_permalink($post->post_parent) ?>" title="<?php printf( __( 'Return to %s', 'your-theme' ), wp_specialchars( get_the_title($post->post_parent), 1 ) ) ?>" rev="attachment"><span class="meta-nav">« </span><?php echo get_the_title($post->post_parent) ?></a></h1>
(添付ファイルのテンプレートから解除された)親にバックリンクを表示します。 - wp_list_pagesと関係があるのでしょうか。多分それは何か他のもの?私はどんなアイデアにも感謝します。
前もって感謝します、
マーティン
名前の通り、wp_list_pages()
はページでの使用を意図しています。 「ページページ」のように。これは内部でget_pages()
を使用します。これはデフォルトでpage
になるpost_type
引数を持ちます。
私はこれが非ページで機能することになっていることはまったくわかりませんが、あなたはあなたのカスタム投稿タイプをpost_type
引数として渡すことを試みることができます。
私は非常によく似たことをやろうとしています。これが私がこれまでに手に入れたもので、カスタム投稿タイプの "product"を使用しています。
$children = wp_list_pages("sort_column=menu_order&title_li=&child_of=".$post->post_parent."&post_type=productE&echo=0")
これによりリストが生成されます。残念ながら、リンクはsiteurl.com/parent-product/child-page
として生成されています
編集画面からビューを実行すると、目的のURLがsiteurl.com/?product=child-page
として表示されます。
私は More Types プラグインを使用しているので、カスタム投稿タイプのパーマリンクベースをproduct
に設定します。
これは私にとってトリックでした。
うーん...カスタム投稿タイプにwp_list_pagesを使用する場合のもう1つの考慮事項は、カスタム投稿タイプを 'capability_type' => 'page' NOT 'post'に登録することです。
register_post_type( 'mycpt',
array(
'labels' => array(
'name' => __( 'MyCPTs' ),
'singular_name' => __( 'MyCPT' )
),
'public' => true,
'show_ui' => true,
'show_in_nav_menus' => true,
'capability_type' => 'page',
'menu_position' => 20,
'hierarchical' => true,
'rewrite' => true,
'supports' => array('title','editor','page-attributes')
)
);
flush_rewrite_rules();