主题定制器预览中的视图类别

时间:2013-08-13 作者:Alvaro

我正在构建一个主题,主题定制器可以更改颜色、大小等,并且还可以选择一个类别和特定类别的样式。

如何在预览中显示该类别(仅当用户更改相应选项时),而不是默认显示的默认主页/首页?

EDIT

我可以使用访问预览窗口customize_preview_init, 但我不能申请wp_redirect, 我想这可能是一种方式。

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

我最终得到了这个解决方案:

1、需要一个额外的文件,该文件只包含主题预览中的挂钩

function mytheme_customizer_live_preview() {
    require_once(\'library/preview.php\');
}
add_action( \'customize_preview_init\', \'mytheme_customizer_live_preview\' );
2。我所要做的是像通常在页面中那样修改查询,所以只需在预览(inside preview.php)中执行即可:

function modify_query($query) {

    $category = get_theme_mod( \'mytheme\' )[\'categories\'][0];

    $query->set(\'cat\', $category);

    return $query;

}
add_filter(\'pre_get_posts\', \'modify_query\', 10);

SO网友:bueltge

如果我正确理解你的目标,那么你会在定制器中选择,那里列出类别,用户可以使用它保存在你的主题设置中。

如果要增强类别的自定义程序,请使用this class 从这里的回购。包括该文件并将其增强为默认类。您可以轻松实现对安装类别的选择。内部readme 该回购协议的两个链接指向gist,并提供了一个示例,但用于其他类型的回购协议。我认为对于定制程序的所有扩展都是一样的。

SO网友:jkhedani

当用户通过主题定制器预览器查看网站时,我使用以下方法向用户显示内容:

global $wp_customize;
if( is_user_logged_in() && isset($wp_customize) ) {
  // Show "categories" or things in the Customizer Previewer only
}
这会使模板更加凌乱,但正如您可能发现的那样,主题定制器上的文档/开发并不多:/

SO网友:Ünsal Korkmaz

只需添加一个仅在实时预览和重定向中激活的javascript:http://www.jquery4u.com/snippets/jquery-redirect-web-page/

作为高级解决方案,您可以使用wp创建异步工作的js函数。定制你可以查看我的主题http://theme.firmasite.com/ 例如用法。

结束

相关推荐

Resort get_categories

我有一个get\\u categories数组$args=array( \'orderby\' => \'id\', \'order\' => \'ASC\', \'taxonomy\' => \'wpsc-variation\', \'hierarchical\' => 1, \'hide_empty\' => 0 ); $variationCategories=get_cate