0

article/permalink当用户登陆专用页面时,我试图在特定的侧边栏中调用我们的 WP 主题。帖子类别将决定拉入哪个侧边栏。

示例:如果用户到达permalink/dedicated article分类为“红色”的帖子的页面,则主题将查找帖子类别,确认该类别为红色,然后找到并拉入我定义为“红色”的侧边栏”。

刚开始这个项目,如果对我在下面描述的内容有任何想法,将不胜感激。

这就是我认为实现这一目标的代码应该是这样的:

<?php 
if (is_category()){  
    $current_cat = intval( get_query_var('cat') );  
    get_sidebar($current_cat);  //for category red get sidebar-red.php
} 
?>

另一个难题:

我想添加一个附加参数,以便如果帖子未分类(即我们出于任何原因没有对帖子进行分类),它将拉入默认侧边栏。我认为代码应该像这样,但我不知道如何定义“不存在的类别”。基本上我想告诉 wordpress 寻找帖子类别。如果它发现一个不存在,那么我希望它拉入 sidebar-default.php

<?php
if (is_category()){  
   $current_cat = intval( get_query_var('cat') );  
   get_sidebar($current_cat); } 

elseif (is_category(**argument for nonexistent category**))   
   $current_cat = intval( get_query_var('cat') );  
   get_sidebar-default.php;  } 
?>
4

3 回答 3

1

你应该使用in_categorynot is

例如:

<?php
if ( in_category('fruit') ) {
    get_sidebar('1');
} elseif ( in_category('vegetables') ) {
    get_sidebar('2');
} else {
    // do nothing or something
            // ...
}
?>

http://codex.wordpress.org/Function_Reference/in_category

<?php in_category( $category, $_post ) ?>

$category

(混合)(必需)由 ID(整数)、名称或 slug(字符串)或这些数组指定的一个或多个类别 默认值:无

于 2011-12-12T04:22:42.010 回答
0

您可以在 CSS 中定义不同的侧边栏类。

为要与样式匹配的类别指定与该类别的 slug 相同的名称。在您的模板中,使用帖子的 category-slug 定义侧边栏 div 的类。

这里有一点关于如何获得蛞蝓:

<?php
if (is_category( )) {
$cat = get_query_var('cat');
$yourcat = get_category ($cat);
echo 'the slug is '. $yourcat->slug;
}
?>

因此,您的侧边栏 div 将类似于:

<div class="<?php echo yourcat->slug; ?> sidebar"></div>

因此,您已经为侧边栏提供了两个类,一个被调用sidebar,一个由类别决定!

希望这是有道理的。

于 2011-12-12T04:18:39.733 回答
0

您甚至可以使用Category Templates,因此您可以创建 category-red.php 和 category-blue.php 文件

于 2011-12-12T12:33:18.613 回答