在search.php和archive.php上显示页面标题而不是帖子标题

时间:2014-03-15 17:24:25

标签: wordpress if-statement

我正在为未来的项目开发一个Wordpress入门主题。我想要实现的是显示页面标题search.php和archive.php。

相反,它现在显示最新帖子的标题。我用谷歌搜索了几个小时并阅读了许多解决方案,但没有运气,这真的让我发疯。

在这里你可以看到我正在寻找search.php和archive.php。但无论我为这些页面尝试什么,总是会显示带有'this is not search.php或archive.php'的else语句。

所以简而言之,search.php和archive.php总是会显示最新的帖子标题而不是页面标题,而我的elseif语句会被忽略。

这是我的代码,它位于header.php中,因此位于循环之外:

 <?php if ( is_page_template('page.php') ) { ?>

   <h1><?php wp_title(); ?></h1>
   <span class="title-sub"><?php the_field('page_slogan'); ?></span>

 <?php } else if ( is_page_template('search.php') ) { ?>

    <h1><?php wp_title(); ?></h1>


 <?php } else if ( is_page_template('archive.php') ) { ?>

    <h1><?php wp_title(); ?></h1>


 <?php } else { ?>

    <h1><?php the_title(); ?> this is not search.php or archive.php</h1>
    <span class="title-sub"><?php the_field('page_slogan'); ?></span>

 <?php } ?>

如何解决这个问题?


EDIT !!!

非常感谢Michal S在这里帮助我! 我需要的代码非常简单:

 <?php
   if (is_search()) {
      /* Main title */
      echo '<h1>Search</h1>';
      /* Streamer underneath the main title */
      echo '<span class="title-sub">Found what you were looking for?</span>';
 } else {
      /* Main title */
      echo '<h1>';
      wp_title('');
      echo '</h1>';
      /* Streamer underneath the main title */
      echo '<span class="title-sub">';
      the_field('page_slogan');
      echo '</span>';
      }
 ?>

1 个答案:

答案 0 :(得分:0)

将此作为一个很好的起点。您可以轻松修改或至少使用以下代码中的条件(信用转到许多流行的空白模板,作者未知)

<title>
       <?php
          if (function_exists('is_tag') && is_tag()) {
             single_tag_title("Tag Archive for &quot;"); echo '&quot; - '; }
          elseif (is_archive()) {
             wp_title(''); echo ' '; }
          elseif (is_search()) {
             echo 'Search for &quot;'.wp_specialchars($s).'&quot; - '; }
          elseif (!(is_404()) && (is_single()) || (is_page())) {
             wp_title(''); echo ' - '; }
          elseif (is_404()) {
             echo 'Not Found - '; }
          if (is_home()) {
             bloginfo('name'); echo ' - '; bloginfo('description'); }
          else {
              bloginfo('name'); }
          if ($paged>1) {
             echo ' - page '. $paged; }
       ?>
</title>