[WordPress]カスタムポストタイプ文をホーム(前面ページ)に表示される

Last Updated: 2016 年 01 月 07 日 댓글

カスタムポストタイプ文のリストをホーム(前面ページ)に表示される

この記事でカスタムポストタイプ(ユーザー定義の投稿タイプ)を使用して「映画レビュー」の投稿タイプを作成する方法を説明しました。 ポートフォリオなどの新しい書式タイプを作成する場合は、カスタム書式タイプを使用すると便利です。 デフォルトでは、カスタム記事はホーム(前面ページ)には表示されません。

ユーザー定義の文の種類を最初のページ(フロントページ)に表示するには、pre_get_postsフックを使用します。 (pre_get_postsアクションフックの詳細については、 WordPress Codexページを参考にしてみてください。)

add_action( 'pre_get_posts', 'add_my_post_types_to_query' );
function add_my_post_types_to_query( $query ) {
if ( is_home() && $query->is_main_query() )
$query->set( 'post_type', array( 'post', 'your_Custom_Post_Type' ) );
return $query;
}

上記のコードを関数ファイルに追加すると、「post」タイプと「your_Custom_Post_Type」がフロントページ(ホーム)に表示されます。 すべての投稿タイプ(post、pageを含む)を表示したい場合は、$ query-> set ...行を次の行に置き換えます。

$query->set( 'post_type', 'any' );

カスタムポストタイプをカテゴリアーカイブページに表示する

基本的には WordPress カスタムポストタイプの文はカテゴリやタグのアーカイブページに表示されません。 次のコードをテーマの関数ファイルに追加すると、ユーザー定義の文の種類がカテゴリページとタグのページに表示されます。

function themeprefix_show_cpt_archives( $query ) {
if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {
$query->set( 'post_type', array(
'post', 'nav_menu_item', 'your_Custom_Post_Type' ));
return $query;
}
}
add_filter( 'pre_get_posts', 'themeprefix_show_cpt_archives' );
// Source: WP Beaches

カスタムポストタイプが WordPress 検索結果に表示されるように設定する

同様に、ユーザー定義の文タイプは、検索結果に表示されません。 次のような関数を追加して WordPressでカスタムポストタイプを照会して検索されるようにすることができます。

add_filter( 'pre_get_posts', 'tgm_io_cpt_search' );
function tgm_io_cpt_search( $query ) {

if ( $query->is_search ) {
$query->set( 'post_type', array( 'post', 'movies', 'products', 'portfolio' ) );
}
return $query;
}
// Source

プラグインを使用する場合、 Advanced Custom Post Searchのようなプラグインをテストすることができます。

기본 WordPress 検索と別の検索フォームを作成したい場合は このstackexchange文の内容を参考にしてみてください。

メモ:


コメントを残す

コメント