务实地更新页面模板

时间:2020-04-15 作者:Haris

虽然我知道有许多类似的问题得到了回答,但这些问题帮助我找到了一个实用的解决方案,可以为我的自定义帖子类型更新页面模板,而且它工作正常。

然而,我的困难在于找到更新body_classes 与页面模板匹配的。目前,在实际更新页面模板时,不会更新body类。

add_filter( \'template_include\', \'my_template_include\', 99, 1 );
function my_template_include( $template ) {
    global $post;

    $meta = get_post_meta( $post->ID, \'designblocks-product-template\', true );

    if ( ! $meta ) {
        return $template;
    }

    $get_template = get_post_meta( $meta, \'_wp_page_template\', true );

    if ( $get_template ) {
        $template = locate_template( array( $get_template ) );
    }

    return $template;
}
有什么想法吗?

1 个回复
SO网友:Dan.

使用body_class 过滤器以更改<body> CSS类。

您可以将相同的逻辑复制到挂钩函数中(如下所示),或者通过将逻辑复制到另一个新函数中并使该函数返回布尔值(然后将该新函数与body\\u类过滤器和template\\u重定向过滤器一起使用),使其更整洁。

add_filter( \'body_class\', function($body_classes){
    global $post;

    $meta = get_post_meta( $post->ID, \'designblocks-product-template\', true );

    if ( ! $meta ) {
        return $body_classes;
    }

    $get_template = get_post_meta( $meta, \'_wp_page_template\', true );

    if ( $get_template ) {
        $body_classes[] = \'your-custom-classes\';
    }

    return $body_classes;
});
尽管如此,如果我正确理解了您要做的事情,那么尝试复制WP的本机页面模板功能和相关内容将使您的生活变得不必要的困难。相反,只需在主题中创建一个名为single-{post-type-name}.php 并使用它来代替指定页面模板。这个<body> 将被授予single-{post-type-name}.

相关推荐

Editing Category Pages

我想让搜索引擎机器人为我的分类页面编制索引,但似乎没有索引,follow标签是由我的主题函数自动添加的我希望分类页允许索引,同时保留noindex,follow for search和404页下面是它们的一部分(functions.php)/*Add noindex to low value pages*/ function add_noindex_tags(){ # Get page number for paginated archives. $paged =