【问题标题】:Wordpress Page titles - PHP If elseWordpress 页面标题 - PHP If else
【发布时间】:2017-04-26 15:56:15
【问题描述】:

我正在尝试更改 header.php 文档中的页面标题,并且需要对它们进行更多控制。

目前我有一个 if 语句引用 PHP 的另一个位,它说如果页面是显示页面,则在标题之前显示显示名称,否则不显示任何内容 - 这意味着它默认返回到主标题代码.继承人的代码,它完美地工作:

<?php
  if (is_page_template( 'page-show.php' ) ) {
      echo "$show_name -";
  } else {
      echo '';
  }
  ?>

  <?php wp_title( '|', true, 'right' ); ?> Leicester

所以,为了更好地控制语句,我想说:如果页面是显示页面,则显示显示名称和标题的正常代码,否则只显示标题代码(我可以与显示代码不同)。我尝试了以下方法,但它似乎不起作用 - 也许我不能在 echo 中包含 PHP?我不确定问题出在哪里......

<?php
      if (is_page_template( 'page-show.php' ) ) {
          echo "$show_name - <?php wp_title( '|', true, 'right' ); ?> Leicester";
      } else {
          echo '<?php wp_title( '|', true, 'right' ); ?> Leicester';
      }
      ?>

有什么想法吗?

【问题讨论】:

  • 不,你不能包含这样的代码,因为你已经在一个 php 块中。只需连接即可。
  • 正确的方法是使用wp_title过滤器。

标签: php wordpress if-statement


【解决方案1】:

不,您不能在这样的回声中包含“

函数 wp_title() returns a string 所以你可以这样做:

echo wp_title( '|', false, 'right' ) . ' Leicester';

【讨论】:

  • 如果参数 2 为真,请检查 docs wp_title 是否会回显标题
  • 已注明并更正。我链接到文档,但显然没有仔细阅读。
【解决方案2】:

您已经在 PHP 块中,因此您不再需要 PHP 标记:

<?php
  if (is_page_template( 'page-show.php' ) ) {
      echo "$show_name - " . wp_title( '|', false, 'right' ) . " Leicester";
  } else {
      echo wp_title( '|', false, 'right' ) . ' Leicester';
  }
  ?>

【讨论】:

  • 如果参数 2 为真,请检查 docs wp_title 是否会回显标题
  • 啊,我改一下,谢谢。我不经常使用 WP 功能。
  • 你能解释一下吗@andrew @aynber?为什么使用 true 不正确?
  • True 将就地输出,并返回 NULL。 False 返回字符串。因此,如果为 true,您只需使用 wp_title( '|', true, 'right' ) 而不使用回声。如果要使用回显,则必须使用false
  • 因为在内部 wp_title 函数会在参数 2 为真时回显标题,但是当参数 2 为真时它将返回它允许您将其传递给 echo 并连接它
猜你喜欢
  • 1970-01-01
  • 2015-08-15
  • 2015-01-17
  • 2013-06-26
  • 2023-02-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-22
  • 1970-01-01
相关资源
最近更新 更多