在single.php wordpress上设置子类别

时间:2015-08-09 07:10:01

标签: php wordpress

任何人都可以帮助我或翻译我想要的PHP:  我需要这样的PHP代码:  如果子类别来自父类别编号(1){

将包含templatepath'/ single-Arabic.php

}  否则如果子类别来自父类别编号(2){

将包含templatepath'/ single-English.php

}  最好的问候

2 个答案:

答案 0 :(得分:0)

检查类别名称而不是类别ID会更好。所以假设你有两个类别,"水果"和#34;肉",然后在single.php电话后的get_header();中,添加以下内容:

if(has_term('fruit', 'category', $post)) get_template_part('single', 'fruit');
else if(has_term('meat', 'category', $post)) get_template_part('single', 'meat');
// else...

如果您已创建文件single-fruit.phpsingle-meat.php

,这将有效

更多信息:https://codex.wordpress.org/Function_Reference/get_template_part

答案 1 :(得分:0)

这是获得顶级父类别的功能。

假设您有类别

  

1。英语
- sub 1英语类别
- sub 2英语   类别

     

2。阿拉伯语
- sub 1阿拉伯语类别
- sub 2阿拉伯语   类别

并且您在帖子页面上说当前类别sub 2 English 然后你调用函数

$Parent = strtolower(get_top_category());

它将返回顶级类别名称 English ,之后该条件将检查类别是否为英语,然后include 'single-English.php'

对于阿拉伯语,

反之亦然。

function get_top_category() {

    $category = get_the_category();
    $cat_tree = get_category_parents($category[0]->term_id, FALSE, ':', TRUE);
    $top_cat = split(':',$cat_tree);
    return $parent = $top_cat[0];
}

echo '<pre>';print_r(get_top_category());echo '</pre>';

$Parent = strtolower(get_top_category());
if($Parent == "english") {
    include 'templatepath/single-English.php';
}
else if($Parent == "arabic") {
    include 'templatepath/single-Arabic.php';
}