有可能为不同的页面设置多个主题定制器吗?

时间:2013-12-01 作者:user1632018

如果您有一个主题,例如有一个博客、头版和其他页面,是否可以有多个主题自定义程序,以便您可以在编辑样式时提供实时预览?

我的主题有一个首页和一个博客。除了页眉和页脚之外,由于主题的类型,博客不会从首页上获得太多内容。如果我想允许用户使用主题定制器编辑首页和博客页面,我是否能够运行多个定制器,因此我有一个用于首页,一个用于博客?这将允许用户轻松使用主题定制器以及ajax实时预览。到目前为止,我还没有看到这样做。

我猜这种情况下的常规做法是要么在后端提供一个额外的选项页面,要么在其他页面的主题定制器中添加部分(即使您无法实时看到更改)

有人能就这种特殊情况给我一些建议吗?

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

这不是一个完整的解决方案,代码也没有经过测试,但我认为这应该足以让您大致了解如何在不同的页面上使用定制器。

// Add "Edit page with customizer" link to relevant pages
add_action(\'admin_bar_menu\', function($bar) {
    if (is_home()) {
        $bar->add_node(array(
            \'id\' => \'some-id-1\',
            \'title\' => \'Edit home page with customizer\',
            \'href\' => admin_url( \'customize.php?url=/home\'),
        ));
    }
    else {
        // Same as above, but change url=/home to some other page
        // and possibly add something like &customize-page-id=PAGE_ID
        // so that you can use the page id later.
    }
 });

 // Add customizer settings based on context passed from admin-bar
 add_action( \'customize_register\', function() {
     if ($_GET[\'url\'] == \'/home\') {
         // Add home page customizers
     }
     else {
         // Add other page customizer where setting names are based on
         // $_GET[\'customize-page-id\'] so that to avoid conflicts
     }
 });
});

结束

相关推荐

通过AJAX再次运行当前查询,但更改了变量

我有一个自定义查询$query. 输入基于表单输入。查询已经在一个页面上运行了,但在此之后,我想在不重新加载页面的情况下再次运行它,使用AJAX(当用户选择选项卡(引导)时)也是如此。问题是我需要更改查询变量posts_per_page 到-1.选择选项卡时执行操作的代码为:$(\'#myTab\').on(\'shown\', function () { // Do stuff here }) 现在在这个功能中,我可以jQuery.ajax( { &#x