WordPress post_title()通知

时间:2018-08-30 11:16:00

标签: php wordpress

这是我的情况:我有一个index.php,它加载的每一页都比另一页低。最后是一页纸。

我在网上找到了此代码段,并且通过创建它帮助了我很多。

      <?php
        $mypages = get_pages( array('child_of' => 1503, 'sort_column' => 'menu_order') );

        foreach( $mypages as $page ) {
            $content = $page->post_content;
            if ( ! $content ) // Check for empty page
            continue;

            $content = apply_filters( 'the_content', $content );
        ?>
        <section>
            <div class="headlines info-header"><img src="<?php echo get_template_directory_uri(); ?>/assets/images/arrow.png" alt="arrow"><?php echo $page->post_title; ?></div>
            <div class="page-content"><?php echo $content; ?></div>
        </section>
        <?php
        }
      ?>

似乎工作正常。但是现在到了问题的一部分。我也想在这一页上显示帖子。我的尝试是创建另一个页面news,并在该页面上放置一个小部件,该小部件显示按类别过滤的最新帖子。

但是现在页面标题不再显示,我只得到以下内容

  

注意:注意:尝试获取属性的“ POST_TITLE”非对象

因此,我认为问题可能与我刚尝试获取<?php echo $page->post_title; ?>的小the_title有关,但最终还是遇到了相同的错误。

我对Wordpress有点陌生,所以我不知道该如何处理。 有没有其他方法可以在我的index.php上获得页面标题?

最好, 多米尼克

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题。正如@ delboy1978uk告诉我的那样,我通过添加两行代码来检查标题是否为空。

这是最终代码:

          <?php
        $mypages = get_pages( array('child_of' => 1503, 'sort_column' => 'menu_order') );

        foreach( $mypages as $page ) {
            $content = $page->post_content;
          $title = $page->post_title;
            if ( ! $content ) // Check for empty page
          if ( ! $title) // Check for empty title < NEW!
            continue;

            $content = apply_filters( 'the_content', $content );
        ?>
        <section>
            <div class="headlines info-header"><img src="<?php echo get_template_directory_uri(); ?>/assets/images/arrow.png" alt="arrow"><?php echo $title; ?></div>
            <div class="page-content"><?php echo $content; ?></div>
        </section>
        <?php
        }
      ?>