php里面的echo标签

时间:2013-04-02 10:52:48

标签: php wordpress echo categories sidebar

我正在运行一个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行

请帮帮我。感谢。

4 个答案:

答案 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()是一个函数,为什么需要回显它,而不是在函数内返回/回显值,所以调用它,将通过给定的参数返回值