我选择了一个自定义页面(-post)作为我的首页。现在,我想在古腾堡编辑器中编辑块模板时,只在该页面上使用块模板。据我所知,在我知道post\\u ID之前,我必须将其添加到“init”或其附近,这样我就不能if ( get_option( \'page_on_front\' ) === $post_ID )
.
我的选择是什么?
Edit:我尝试过此操作,但由于is\\u front\\u page()返回“false”,因此无法正常工作:
function home_block_template() {
$post_type_object = get_post_type_object( \'post\' );
if ( is_front_page() ) {
$post_type_object->template = array(
array( \'core/image\', array() ),
);
}
}
add_action( \'init\', \'home_block_template\' );
最合适的回答,由SO网友:Richard B 整理而成
背景$post_type_object->template
似乎是在“init”(或接近它)上完成的,而is_front_page()
设置得比较晚,所以我必须使用$_GET[\'post\']
相反我也改变了get_post_type_object( \'post\' )
至“第页”。像这样:
add_action( \'init\', \'home_block_template\' );
function home_block_template() {
if ( ! is_admin() || ! isset( $_GET[\'post\'] ) || get_option( \'page_on_front\' ) !== $_GET[\'post\'] ) {
return false;
}
$post_type_object = get_post_type_object( \'page\' );
$post_type_object->template = array(
array( \'core/list\' ),
);
}