通过关闭和重新打开php标签来向小部件添加html是不是很糟糕?

时间:2020-06-13 作者:Matt

我刚刚开始制作自己的WordPress小部件,对PHP或HTML的良好实践没有很好的理解。要向小部件添加html,我看到了两种不同的方法,第一种是在PHP内部使用echo 第二个是用?> , 编写一些HTML,然后用<?php 标签

对于我的widget,我发现使用第二种方法要容易得多,但我担心这样做是否是不好的做法,是否会导致以后的问题。这是不是只是碰巧起作用的东西,不打算以这种方式使用,因此可能在将来的更新中被破坏?

2 个回复
SO网友:Mort 1305

“练习”是个人喜好的问题。打开和关闭PHP标记(<?php?>) 是为了方便起见。基本上,尝试在上下文中编写代码。在示例中,

// PHP code here
?><a href="<?php the_permalink() ?>"><?php the_title() ?></a><?php
// PHP code here
看起来(对我来说)就像HTML代码在PHP代码块的中间砰砰地一声跳了起来(就像functions.php 文件),因此我将在该上下文中编写此HTML链接的显示

// PHP code here
echo \'<a href="\'. get_the_permalink() .\'">\'. get_the_title() .\'</a>\';
// PHP code here
但是,如果我在HTML代码块中(如single.php 我将在HTML上下文(与上面的PHP上下文相反)中编写此链接的显示。所以,我不会使用

// HTML code here
<?php echo \'<a href="\'. get_the_permalink() .\'">\'. get_the_title() .\'</a>\'; ?>
// HTML code here
而是将链接的显示编码为

// HTML code here
<a href="<?php the_permalink() ?>"><?php the_title() ?></a>
// HTML code here

SO网友:mozboz

最好尽量将代码和表示分离开来。实现这一点的最佳方法是将所有HTML保存在“模板”中,将所有代码保存在某个PHP文件中。

在实践中,许多PHP开发人员都不这样做,您会得到代码和HTML的混合,这通常很难阅读。

我建议您尽可能将所有PHP放在文件的一部分,然后使用尽可能短的PHP片段将PHP结果放入HTML中。下面是一个示例:

<?php
// do some complicated stuff here and keep all the code logic in one place:
$a = complicated_function();
$b = work_something_out();
$c = $a + $b;
if ($c = "hello") {
   $d = "this";
}
// etc etc
?>

<!-- now put all that in your HTML using shortest PHP tags possible -->
<div><p><?php echo $a; ?></p></div>
<h1><?php echo $b; ?></h1>
....
<div class="<?php echo $c; ?>"><?php echo $d; ?><?div>
因此,这里的代码和HTML尽可能分开,更容易看到代码在一个地方做什么,而演示在第二个地方做什么

如果您有很多PHP,请尽可能将其拉入单独的类/文件中。

相关推荐

WordPress联系人表单消息没有发送,尽管它说使用此php代码已成功发送消息

这是一个有效的联系表单代码,当我提交消息时,它会说谢谢,消息发送成功,但很遗憾,我没有收到任何消息。我在本地主机上的wordpress上使用它。我应该改变什么才能得到这些信息??请帮忙<?php if(isset($_POST[\'submitted\'])) { if(trim($_POST[\'contactName\']) === \'\') { $nameError = \'Please enter your name.\';