首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >wordpress中的最新功能文章

wordpress中的最新功能文章
EN

Stack Overflow用户
提问于 2014-12-06 07:09:24
回答 2查看 94关注 0票数 0

我有下一个代码显示最新的文章在wordpress。我想加缩略图和日期。有什么建议吗?

代码语言:javascript
运行
复制
function last_article($atts){
   extract(shortcode_atts(array(
      'posts' => 1,
   ), $atts));

   $return_string = '<ul>';
   query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => $posts));
   if (have_posts()) : 
      while (have_posts()) : the_post();
         $return_string .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
      endwhile;
   endif;
   $return_string .= '</ul>';

   wp_reset_query();
   return $return_string;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-06 08:13:06

你的短码太邪恶了。你永远不应该使用extract()extract()将从Wordpress核心完全删除。这也会告诉你extract()到底有多糟糕。参见相应的这里的电车票

而且,永远不要使用query_posts

注意:这个函数不适合插件或主题使用。正如后面解释的那样,有更好的、更好的执行选项来更改主查询。query_posts()通过将页面替换为查询的新实例来修改页面的主查询,这是过于简单和有问题的方法。它效率低下(重新运行SQL查询),在某些情况下会彻底失败(特别是在处理posts分页时)。

你应该使用WP_Query

您应该访问法典中的短代码API,看看如何正确构造一个短代码。

考虑到这一点,代码应该如下所示

代码语言:javascript
运行
复制
function last_article($atts){

   $a = shortcode_atts( array(
        'posts' => 1,
    ), $atts );

   $return_string = '<ul>';
   $q = new WP_Query(array('orderby' => 'date', 'order' => 'DESC' , 'posts_per_page' => $a['posts']));
   if ($q->have_posts()) { 
      while ($q->have_posts()) { 
         $q->the_post();

         $return_string .= '<li>'.the_date().'</li>';
         $return_string .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
         if (has_post_thumbnail()) {
             $return_string .= '<li>'.the_post_thumbnail().'</li>';
         }
      }
   }
   $return_string .= '</ul>';

   wp_reset_postdata();
   return $return_string;
}
票数 1
EN

Stack Overflow用户

发布于 2014-12-06 07:18:47

试试这个:

代码语言:javascript
运行
复制
    function last_article($atts){
       extract(shortcode_atts(array(
          'posts' => 1,
       ), $atts));

       $return_string = '<ul>';
       query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => $posts));
       if (have_posts()) : 
          while (have_posts()) : the_post();
             $return_string .= '<h4>'.the_date().'</h4>';
             $return_string .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
             if (has_post_thumbnail()) {
             $return_string .= '<div>'.the_post_thumbnail().'</div>';
             }
          endwhile;
       endif;
       $return_string .= '</ul>';

       wp_reset_query();
       return $return_string;
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27329267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档