私は '欠員'と呼ばれるCPTを持っていますここにそれを登録するコードです:
function register_cpt_vacancy() {
$args = array('labels' => $labels, 'hierarchical' => false, 'supports' => array('title', 'editor', 'excerpt', 'thumbnail', 'revisions'), 'taxonomies' => array('departments'), 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, 'show_in_nav_menus' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'has_archive' => true, 'query_var' => true, 'can_export' => true, 'rewrite' => true, 'capability_type' => 'post');
register_post_type('vacancy', $args);
}
テンプレートフッターでこれをやろうとしています:
wp_list_pages('post_type=vacancy');
どれを - ドキュメントを読むことから 私はうまくいくと思った。
独自のクエリスタイルやメニュースタイルを作成する以外にこれを行う方法はありますか?この空席の一覧は、wp_nav_menu
で呼び出される他の2つのwpメニュー間のメニューとして表示されるので、私はそれがリスト構造になっていることを望みます。
さまざまなアプローチに関する支援や提案があれば歓迎しました:)
wp_list_pagesドキュメント には、次のように記載されています。
特定のカスタム投稿タイプが本質的に階層型の場合は、wp_list_pages()を使用してそのカスタム投稿タイプのメンバーを一覧表示できます。
自分のコードに基づいて、wp_list_pages()で使用しようとしているCPTはnot階層です。
したがって、2つの解決策があります。
'hierarchical' => true
と'capability_type' => 'page'
を設定して、投稿タイプを階層的にする(ページのように)。
次のようなものを使うことをお勧めします。
$vacancy_menu = get_posts( 'post_type=vacancy' );
if( $vacancy_menu ) : ?>
<ul>
<?php foreach( $vacancy_menu as $menu_item ) :
setup_postdata( $menu_item );?>
<li><a href="<?php the_permalink(); ?>" title="Go to <?php the_title(); ?>"> <?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
ご希望の場合は、これを独自の "wp_list_posts()"を作成する関数として簡単に設定することも、wp_nav_menu()のHTMLと一致するように設定することもできます。
また、リンクへの "現在の"クラスの適用方法に関する情報を含む同様の説明については、 この例 を参照してください。