如果使用模板,如何在页面上显示Metabox

时间:2019-03-13 作者:Raashid Din

我正在为一种特殊的页面创建元数据库。但当我只向当前有“Sky”模板的页面显示元盒时,我被卡住了。我的模板文件名为sky template。php并保存此代码。

/*
Template Name: Sky
*/
我正在使用这个函数添加元盒。

add_action( \'add_meta_boxes\', \'cd_meta_box_add\' );
function cd_meta_box_add() {
    add_meta_box( \'sky_page_excerpt\', \'SkyScraper Page Excerpt and Links\', \'sky_page_excerpts\', \'page\', \'advanced\', \'high\' );
}
我只想将元盒添加到带有模板sky的页面。我将如何做到这一点。提前感谢

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

使用特定于页面的元框挂钩(&M);接受$post 对象,然后您可以检查它当前是否有sky-template.php.

add_action( \'add_meta_boxes_page\', function ( $post ) {
    if ( $post->_wp_page_template === \'sky-template.php\' ) {
        add_meta_box( \'sky_page_excerpt\', \'SkyScraper Page Excerpt and Links\', \'sky_page_excerpts\', \'page\', \'advanced\', \'high\' );
    }
});
Note: 这只适用于提交/刷新,即当您在编辑时首次(取消)选择模板时,您需要保存更改并重新加载页面,以便元框生效。

相关推荐

Taxonomy linked to pages

在我的产品页面中,我添加了许多自定义分类法。其中之一就是被称为“colecciones”的分类学。例如,您可以在此URL中看到:https://www.editorialufv.es/catalogo/comunicacion-clinica/ 每本书都是一个集合的一部分(西班牙语为Coleccion)。我希望产品页面中出现的链接将重定向到我对每个收藏所做的页面,而不是商店页面过滤器。在这种情况下,Coleccion被称为“relación clínica”,他的URL是:https://www.edit