对具有特定类别祖辈的帖子使用模板

时间:2017-04-11 作者:Moae84

我的博客帖子有以下类别结构:

祖父母类别->父母类别->类别1、类别2、类别3

帖子只分配给孙辈类别中的一个类别,我想为所有具有特定祖辈的类别使用特定模板(我不想将其分配给祖辈类别,因为我不想让祖辈出现在帖子列表中)。

function get_custom_cat_template($single_template) {
 global $post;
if ( in_category( \'Grandparent Category\' )) {
      $single_template = dirname(__FILE__) . \'/single-template.php\';
 }
 return $single_template;
}

add_filter( "single_template", "get_custom_cat_template" ) ;
我意识到,如果帖子没有同时分配给祖父母类别,\\u category()中的函数不起作用,但我希望有这样的内容-

如果该帖子类别有祖父母,请使用此特定模板。

提前感谢您的帮助!

1 个回复
SO网友:Serkan Algur

让我更新您的代码:)

您不需要为您的帖子选择祖父母类别。首先,我们需要获得祖父母类别名称。这里是函数;

function get_grandparents_category_salgur( $id) { 
    $parent = get_term( $id, \'category\' ); 
    if ( is_wp_error( $parent ) ) 
        return $parent; 
     if ( $parent->parent && ( $parent->parent != $parent->term_id ) ) { 
        $go_get_gp = get_term( $parent->parent, \'category\' );
    }
    $grandparent = get_term( $go_get_gp->parent, \'category\' );  
    return $grandparent->name; 
} 
此代码将查找祖父母类别名称。之后,我们可以在函数中定义。

function get_custom_cat_template($single_template) {
    global $post;
    $postcat = get_the_category( $post->ID );
    $grandparent_name = get_grandparents_category_salgur( $postcat[0]->term_id);
        if ( $grandparent_name === \'Grandparent Category\' ) {
            $single_template = dirname(__FILE__) . \'/single-template.php\';
        }
    return $single_template;
}

add_filter( "single_template", "get_custom_cat_template" );

相关推荐

如何将Java脚本添加到Custom-Page.php模板?

如何将javascript添加到自定义页面。php模板?如何使从w3schools ajax教程获得的以下javascript在自定义页面上工作。php模板?任何帮助都将不胜感激。工作javascript包含在以下HTML中:<!DOCTYPE html> <html> <style> table,th,td { border : 1px solid black; border-collapse: collapse;&#x