To echo or not to echo?

时间:2015-09-16 作者:IXN

在代码中搜索相关帖子时,我发现了两个几乎相同的代码片段,唯一的区别是其中一个使用了echo:

echo \'<li><a href="\' . get_permalink() . \'" title="\' . the_title_attribute() . \'">\' . the_title() . \'</a></li>\';
而另一个没有:

<li>
<a href="<?php the_permalink() ?>" title="<?php the_title_attribute() ?>"> <h4><?php the_title() ?></h4></a>
            </li>
就个人而言,我对第二个版本(混合了html和php)的理解更好,但我怀疑,WP就是它(总是更喜欢php而不是html),第一个版本可能是官方的做事方式。

在这种情况下,有没有更好的做事方式?如果是,为什么?

2 个回复
最合适的回答,由SO网友:tillinberlin 整理而成

主要区别在于:第一个代码段在php中包含html,而第二个代码段在html中包含php。这两种方法基本上都是有效的,都很好。

然而,我始终倾向于(并建议)在html中使用php,因为第三方/设计师可能在理解代码和I.m.h.o.方面没有太大困难。这样就不太可能弄乱它。

SO网友:Mayeenul Islam

首先,我不知道有什么更好的方法,你可以在需要的地方使用这两种方法。尽管您提到的第一个包含bug:

echo \'<li><a href="\' . get_permalink() . \'" title="\' . the_title_attribute() . \'">\' . the_title() . \'</a></li>\';
the_title_attribute() 不返回,但直接回显。所以当你在一个echo, 这样做:

the_title_attribute( array( \'echo\' => 0 ) )
类似地the_title() 它本身与整体相呼应,因此当您在echo 使用get_the_title() 相反

因此,纠正后的第一个问题是:

echo \'<li><a href="\'. get_permalink() .\'" title="\'. the_title_attribute( array( \'echo\' => 0 ) ) .\'">\'. get_the_title() .\'</a></li>\';
第二个

为什么块元素在内联元素中?

<li>
   <a href="<?php the_permalink() ?>" title="<?php the_title_attribute() ?>">
      <h4><?php the_title() ?></h4>
   </a>
</li>
不应该是那样的,但应该是这样的:

<li>
   <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
      <?php the_title(); ?>
   </a>
</li>

相关推荐

如何在WordPress unctions.php中将短代码值传递到Head

我正在尝试为wordpress帖子上的图表创建一个快捷代码。到目前为止,我已经使用了短代码,我可以看到短代码值正在被传递,但我需要知道的是如何将这些值传递到Google图表,以便正确工作。以下是我目前掌握的代码:function chart_shortcode($atts) { $a = shortcode_atts( array( \'value1\' => \'\', \'value2\' => \'\', \'value