我有1个单独的帖子页面模板,它将显示2个不同的分类术语,我喜欢为这2个不同的术语调用2个不同的侧边栏。这个帖子模板是" single-recipe.php",我在其中调用" content-single_recipe.php"。在" content-single_recipe.php"中,我使用条件语句根据不同的条件调用2个不同的侧边栏:
单RECIPE.PHP
while ( have_posts() ) : the_post();
get_template_part( 'content', 'single_recipe' );
endwhile; // end of the loop.
CONTENT-SINGLE_RECIPE.PHP
php the_content();
// Here are code for sidebars:
$term = get_the_term_list($post->ID, 'recipe_type');
if ( $term = 'salad' ){
dynamic_sidebar('sidebar-salad');
}elseif($term = 'sandwich'){
dynamic_sidebar('sidebar-sandwich' );
}
然而,无论$ term是什么,它总是称为" sidebar-salad"。
答案 0 :(得分:1)
get_the_term_list
为您提供HTML条款列表。请改用has_term
。与==
进行比较,而不是=
。由于您使用=
,即为变量赋值,您首先if
将始终为真。
if( has_term( 'salad', 'recipe_type', $post->ID ) ){
dynamic_sidebar('sidebar-salad');
}
elseif( has_term( 'sandwich', 'recipe_type', $post->ID ) ){
dynamic_sidebar('sidebar-sandwich');
}
答案 1 :(得分:0)
// Sidebars
if(is_front_page())
$op_sidebar_id = __('Sidebar Home','options');
// Single page and post type sidebars
elseif(is_attachment())
$op_sidebar_id = __('Sidebar Attachment','options');
elseif(is_single())
$op_sidebar_id = __('Sidebar Single','options');
elseif(is_page())
$op_sidebar_id = __('Sidebar Page','options');
else
$op_sidebar_id = __('Sidebar Home','options');
之后,我使用变量set添加正常的widgetized部分:
//如果使用No Sidebar模板 if(is_page_template('no-sidebar.php')): 回声''; //否则,请显示侧栏 否则: echo“”;
if(function_exists('dynamic_sidebar') &&
dynamic_sidebar($op_sidebar_id)) :
else :
// Default to Home page sidebar if no widgets are set
if(function_exists('dynamic_sidebar') && dynamic_sidebar(__('Sidebar
Home','options'))) :
else : _e('Add content to your sidebar through the widget control
panel.','options');
endif;
endif;
echo '</div>';
endif;