PHP最佳实践


11

在做诸如single.php之类的模板并且将php包裹在html中时,最好这样做:

  1. 启动+停止PHP?例如

     <h1 class="post-tilte"><?php the_title(); ?></h1>
     <p class="post-content"><?php the_content();?></p>

要么

  1. 回声HTML和Escape PHP?例如 -

    <?php echo '<h1 class="post-title">' . get_the_title() . '</h1>
    <p class="post-content"' . get_the_content() . '</p>

我没有一个自由释放的选择,发现自己都做,只是好奇地听到一些想法


6
第一种方法对设计人员更友好。因此,在具有大量HTML和少量PHP的模板中,请执行第一个。当有很多PHP和一些HTML时,第二个有用。做它functions.php或插件等
Fayaz

3
你忘了这里还有printf( '<h1 class="post-title">%s</h1>', get_the_title() );
Howdy_McGee

Answers:


10

这个问题只是相关的,因为WordPress使用了编码语言和布局语言的混合体。如果您要使用模板语言,语法,那么与本主题无关。但是对你的问题。如果您将示例源用于主题,更多的布局语言(如html),则我更喜欢第一种-对于设计者和用户而言,它更具可读性,必须阅读标记。创建有关标记的概述,打开和关闭标签等更加容易。

对于包含在插件中,具有更多逻辑和流程的代码是更易于实现的第二个示例。主要主题是php,而不是标记,应该在源代码中可见。这也是考虑将标记排除在模板文件中并将标记与逻辑分开的要点。


1
第一个的另一个好处是,如果您将光标放在相应的开始或结束标记中,则某些编辑器会突出显示该标记,但是后者通常会破坏这种便利性。
MonkeyZeus


5

如上面的答案所述,第一种方法是设计者友好的,第二种方法可能适用于html标签数量很少的插件和复杂php代码的情况。

但是大多数WordPress模板标签都具有beforeafter参数,并且更适合在函数调用内使用html代码。

例如,在the_title它具有三个参数的情况下

the_title( $before, $after, $echo );

您可以将html传递到以下参数之前和之后

the_title( '<h2 class="title">', '</h2>', true );

这种方法的优点是

  • 设计师友好
  • 如果标题为空,将不会打印出html标签
  • 可以用于复杂的php代码以及简单的模板文件中

0

第一种方法是可取的,因为:

  • 它将固定的HTML布局与动态内容清楚地分开。
  • 更容易阅读。
  • 在大多数编辑器中,语法高亮会更好地支持它,因为通常无法识别字符串中的html属性。
  • 它可以防止您太容易地将HTML和PHP混合在一起。

由于上述原因,第一种方法导致代码易于理解,因此易于维护。

以我的经验,在某些情况下,使用第二种方法似乎更方便。但是,这通常是由于(软件)设计较弱而引起的,应将其视为警告信号。


0

您的代码示例是微不足道的,因为它仅显示两行代码,但是我相信总体答案是相当实际的。如果在HTML块中使用PHP行,请使用第一种方法。如果您在PHP块中使用HTML行,请选择第二行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.