我正在运行一个wordpress网站,我试图根据不同的类别回应不同的侧边栏,但我似乎无法将PHP代码放在echo标签内。代码工作得很好,可以在侧边栏中,在不同的类别页面上回显出不同的内容,但我不能在echo''中添加php代码,因为它返回了一个错误。这是我的代码:
<?php if ( is_active_sidebar( "main_sidebar" ) ) : ?>
<div id="main_sidebar" class="widget-area">
<?php
if ( is_category( '7' )) {
echo 'Sidebar to be echo'd on category page with ID=7';
}
else
{
echo 'Sidebar to be echo'd on all the other category pages';
}
?>
</div><!-- #first_sidebar .widget-area -->
<?php endif; ?>
这就是我希望它发挥作用的方式:
<?php if ( is_active_sidebar( "main_sidebar" ) ) : ?>
<div id="main_sidebar" class="widget-area">
<?php
if ( is_category( '7' )) {
echo '<?php dynamic_sidebar( 'category_fashion' ); ?>';
}
else
{
echo '<?php dynamic_sidebar( 'main_sidebar' ); ?>';
}
?>
</div><!-- #first_sidebar .widget-area -->
<?php endif; ?>
使用上面的代码时出现此错误:
解析错误:语法错误,意外T_STRING,期待','或';' 在/home/ignoremu/public_html/wp-content/themes/.../sidebar.php 在第6行
请帮帮我。感谢。
答案 0 :(得分:3)
最好的方法是完全跳过回声中的HTML,然后输出带有回声的结果:
<?php if ( is_active_sidebar( "main_sidebar" ) ) : ?>
<div id="main_sidebar" class="widget-area">
<?php
if ( is_category( '7' )) {
echo dynamic_sidebar( 'category_fashion' );
}
else
{
echo dynamic_sidebar( 'main_sidebar' );
}
?>
</div><!-- #first_sidebar .widget-area -->
<?php endif; ?>
答案 1 :(得分:1)
如果你想在带有单引号的echo中放入单引号,你将不得不转义引号:
// Escaped here
echo 'Sidebar to be echo\'d on category page with ID=7';
双引号字符串中的双引号也是如此。
编辑:oops,没有完全阅读。要解决您的问题:if ( is_category( '7' )) {
echo '<?php dynamic_sidebar( 'category_fashion' ); ?>';
} else {
echo '<?php dynamic_sidebar( 'main_sidebar' ); ?>';
}
要:
if ( is_category( '7' )) {
echo dynamic_sidebar( 'category_fashion' );
} else {
echo dynamic_sidebar( 'main_sidebar' );
}
答案 2 :(得分:1)
你已经在php中为什么要再次启动php?就在下面就可以了。
echo dynamic_sidebar( 'category_fashion' );
答案 3 :(得分:0)
如果dynamic_sidebar()是一个函数,为什么需要回显它,而不是在函数内返回/回显值,所以调用它,将通过给定的参数返回值