拥有自定义页面模板文件时如何添加自定义元框

时间:2017-02-14 作者:signif_3223

我一直在尝试在编辑页面面板中为使用特定模板的页面添加自定义元框,在本例中front-page.php. 我尝试使用这两种方法get_page_template_slug( $post_id )get_post_meta( $post_id, \'_wp_page_template\', true ). 但在我看来,这两种方法都只是在数据库中查找元数据。

这是一个问题,因为我的自定义模板不是这样注册的。我构建了一个自定义主题,我将一个页面设置为“首页”,然后front-page.php Wordpress自动分配给上述首页的文件。据我所知,数据库中没有任何信息表明头版帖子使用front-page.php 模板,这就是上述方法不起作用的原因。

因此,我的问题是:如果我有一个自定义主题,其中包含仅由文件名分配的自定义页面模板,那么我将如何检测这些模板,以便将自定义元框添加到各自的编辑面板?

1 个回复
SO网友:cybmeta

首页配置是一个站点选项。您可以知道站点是否配置为显示page 具有get_option( \'show_on_front\' ) 并使用get_option( \'page_on_front\' ).

您可以这样做:

add_action( \'add_meta_boxes\', \'cyb_add_metaboxes\', 10, 2 ); 
function cyb_add_metaboxes( $post_type, $post ) {

   if( $post->ID == get_option( \'page_on_front\' ) ) {

      add_meta_box(\'front-page-metabox\', \'Front page metabox\', \'cyb_front_page_metabox\', \'page\' );

   }

}

// Metabox callback
function cyb_front_page_metabox() {
}
但使用此方法,在呈现元框之前,需要创建页面并将其分配给首页。我不知道你想在首页的元字段中存储什么样的数据,但我认为你应该探索一下the customize API, 特别是如果您想将元盒用于站点的首页配置或站点的首页呈现选项。

相关推荐

echo plugin results on pages

我正试图通过插件在wordpress的前端得到一个可以回应的查询,但没有太大成功。我们将不胜感激。下面是我使用的简单脚本: function getPageIDs() { include_once($_SERVER[\'DOCUMENT_ROOT\'].\'/stage/wp-config.php\' ); global $wpdb; $row = $wpdb->get_row( \'SELECT p