Roots Bedrock + Sage 9 Beta 3を使用しています。私は自分のホームページとして設定したいタイプlp
のカスタム投稿を作成しました。これが私が使っているコードです:
function cptui_register_my_cpts_lp() {
/**
* Post Type: Landing Pages.
*/
$labels = array(
"name" => __( 'Landing Pages', 'sage' ),
"singular_name" => __( 'Landing Page', 'sage' ),
);
$args = array(
"label" => __( 'Landing Pages', 'sage' ),
"labels" => $labels,
"description" => "Pages without menus and/or totally custom layouts.",
"public" => true,
"publicly_queryable" => true,
"show_ui" => true,
"show_in_rest" => false,
"rest_base" => "",
"has_archive" => false,
"show_in_menu" => true,
"exclude_from_search" => true,
"capability_type" => "post",
"map_meta_cap" => true,
"hierarchical" => false,
"rewrite" => [ "slug" => "lp", "with_front" => true ],
"query_var" => true,
"menu_icon" => "dashicons-welcome-widgets-menus",
"supports" => [ "title", "thumbnail", "excerpt" ],
);
register_post_type( "lp", $args );
}
add_action( 'init', 'cptui_register_my_cpts_lp' );
私は mpress-custom-front-page をインストールしましたが、ランディングページが表示されないようです。
post_type = 'any'
で投稿を得るためにget_posts()
を使うことに気づきました。送信するクエリは以下のとおりです。
$queried_post = get_posts([
'posts_per_page' => - 1,
'orderby' => 'title',
'order' => 'ASC',
'post_type' => 'any',
'post_status' => 'publish',
]);
post_type
を'lp'
に設定すれば私の投稿になります、問題ありません。any
が私のカスタム投稿タイプを見つけられないのはなぜですか?あなたの投稿タイプを登録するときあなたは'exclude_from_search' => true
を持っているので
get_posts()
は単にそれをWP_Query
に渡しています。 WP_Query
のパラメーター定義 には、次のように記述されています。
'any' - 'exclude_from_search'がtrueに設定されているリビジョンとタイプを除くすべてのタイプを取得します。