Wordpress查询仅显示一些数据

时间:2016-12-13 14:34:16

标签: php wordpress

我想显示具有特定html / css属性的最新帖子。然而,我当前的解决方案只显示帖子的标题和网址(没有日期或摘录)。

这是我在functions.php中调用action.php中的“函数版本#1”代码:

function latest_article() {
  $content_latest_php = "";

  $query_latest_article = wp_get_recent_posts( array(
    'numberposts' => 1
  ));

  foreach ( $query_latest_article as $post) {
    $content_latest_php = get_template_part( 'content-latest', get_post_format() );
  };

  return $content_latest_php;
};

这是我的“功能版本#2”,尝试使用不同的方式来实现相同的目标:

function latest_article() {
  $args = array(
    'post_type' => 'post',
    'posts_per_page' => 1,
    'orderby' => 'date',
    'order' => 'DESC'
  );

  $query_latest_post = new WP_Query( $args );
  if ( $query_latest_post->have_posts() ) {
    while ( $query_latest_post->have_posts() ) {
        $query_latest_post->the_post();
        get_template_part( 'content-latest', get_post_format() );
    }
  }
  wp_reset_postdata();
};

这是content-latest.php:

<div class="article-latest">
  <a class="article-link" href="<?php the_permalink() ?>">
    <img class="article-latest-image" src="<?php bloginfo('template_directory');?>/img/article-thumbnail.png"></img>
    <div class="article-latest-date"><?php get_the_date(); ?></div>
    <div class="article-latest-title"><?php the_title(); ?></div>
    <div class="article-latest-text" href="<?php the_permalink() ?>"><?php get_the_excerpt() ?></div>
  </a>
</div>

这是我在使用代码检查器查看网站时收到的结果:

<div class="article-latest">
  <a class="article-link" href="http://mywebsite.com/the-latest-post/">
    <img class="article-latest-image" src="http://mywebsite.com/wp-content/themes/nameofthetheme/img/article-thumbnail.png"></img>
    <div class="article-latest-date"></div>
    <div class="article-latest-title">The name of the latest post</div>
    <div class="article-latest-text" href="http://mywebsite.com/the-latest-post/"></div>
  </a>
</div>

^没有加载日期和摘录。那是为什么?

2 个答案:

答案 0 :(得分:0)

您正在使用get_the_excerpt()get_the_date():这两个函数返回相关信息,但他们不输出它。< / em>所以你需要echo

<?php
echo get_the_date();
echo get_the_excerpt();
?>

或者使用实际输出的这些功能:

<?php
the_date();
the_excerpt();
?>

WordPress经常使用这个约定;如果函数以get - get_the_title()get_the_date()等开头,则通常会返回而不是输出它。以the开头的函数通常输出与循环中的当前帖子有关。

举一个例子:如果您要查看the_exerpt()的来源,您会发现它实际上是get_the_excerpt()

function the_excerpt() {

/**
 * Filters the displayed post excerpt.
 *
 * @since 0.71
 *
 * @see get_the_excerpt()
 *
 * @param string $post_excerpt The post excerpt.
 */
echo apply_filters( 'the_excerpt', get_the_excerpt() );
}

答案 1 :(得分:0)

您可以在内容最新主题文件中尝试此操作

    <div class="article-latest">
  <a class="article-link" href="<?php the_permalink() ?>">
    <img class="article-latest-image" src="<?php bloginfo('template_directory');?>/img/article-thumbnail.png"></img></a>
    <?php the_date()('Y-m-d', '<div class="article-latest-date">', '</div>'); ?>
    <div class="article-latest-title" href="<?php the_permalink() ?>"><?php the_title(); ?></a></div>
    <div class="article-latest-text"><?php the_excerpt() ?></div>
</div>