是否仅在使用特定模板的页面上显示编辑器小工具?

时间:2014-01-19 作者:AHCo

我正在使用以下代码在多站点安装中向主页添加另外三个特色图像:

if (class_exists(\'MultiPostThumbnails\')) {
    new MultiPostThumbnails(
        array(
            \'label\' => \'Core Home Image 1\',
            \'id\' => \'core-home-1\',
            \'post_type\' => \'page\'
        )
    );
    new MultiPostThumbnails(
        array(
            \'label\' => \'Core Home Image 2\',
            \'id\' => \'core-home-2\',
            \'post_type\' => \'page\'
        )
    );
    new MultiPostThumbnails(
        array(
            \'label\' => \'Core Home Image 3\',
            \'id\' => \'core-home-3\',
            \'post_type\' => \'page\'
        )
    );
}
新的编辑页面小部件按其应有的方式显示和运行,但它们出现在所有编辑页面上。我如何强制WordPress只在使用特定模板的页面上显示它们,即核心首页模板(wp-content/themes/mytheme/templates/Core-Front-Page.php)?

提前感谢您的帮助。

1 个回复
SO网友:AHCo

使用的解决方案:

// decide to show or hide the widgets
function check_for_using_template(selected){
    if (selected == "page-templates/core-front-page.php"){
        jQuery("#page-core-home-1").show();
        jQuery("#page-core-home-2").show();
        jQuery("#page-core-home-3").show();
        jQuery("label[for=\'page-core-home-1-hide\']").show();
        jQuery("label[for=\'page-core-home-2-hide\']").show();
        jQuery("label[for=\'page-core-home-3-hide\']").show();
    }else{
        jQuery("#page-core-home-1").hide();
        jQuery("#page-core-home-2").hide();
        jQuery("#page-core-home-3").hide();
        jQuery("label[for=\'page-core-home-1-hide\']").hide();
        jQuery("label[for=\'page-core-home-2-hide\']").hide();
        jQuery("label[for=\'page-core-home-3-hide\']").hide();
    }
}
jQuery(document).ready(function(){
    check_for_using_template(jQuery("#page_template").val());
    jQuery("#page_template").change(function(){
        check_for_using_template(jQuery("#page_template").val());
    })
});
不幸的是,我无法成功地利用is\\u page\\u模板,所以我使用了jQuery。虽然这可能不是最有效的解决方案,但它确实有效。

结束

相关推荐

Using add_filter() in Widgets

只需查询引用add_filter() 作用您可以在WordPress小部件类中使用此函数吗。Example我有一个带有动态创建代码的小部件,我想将其传递给插件中创建的另一个函数。这能实现吗?<?php /** * Display the actual Widget * * @param Array $args * @param Array $instance */ public function widget($args, $inst