关于wordpress排序,默认依post_date排序;wordpress内定允许的排序字段包括:
'post_name', 'post_author', 'post_date', 'post_title', 'post_modified','post_parent', 'post_type', 'name', 'author', 'date', 'title', 'modified','parent', 'type', 'ID', 'menu_order', 'comment_count', 'rand'
如果需要修改文章依ID字段排序,方法大致有:
1、可以向posts_orderby这个hooks添加内容。位于wp-includes/query.php中 3206行。
如:
add_filter( 'posts_orderby', 'wpdit_custom_orderby' ); function wpdit_custom_orderby( $orderby ) { $orderby = "ID ASC"; return $orderby; }
上面的代码是改变了全局的排序方式。
2、如果仅想在需要的地方设定不同的排序,可参考下面的代码:
$args = array( 'orderby' => 'ID', //直接设定条件 );
在允许排序的字段当中,’rand’也是个有意思的应用,早些时间有分享随机获取文章的具体方法,可移步参考:
《wordpress随机文章》
另外,百度知道里道友提出这样的问题:
wordpress 评论数排序文章问题 '', 'post_status' => 'publish', // 只选公开的文章. 'post__not_in' => array($post->ID),//排除当前文章 'caller_get_posts' => 1, // 排除置顶文章. 'orderby' => 'comment_count', // 依评论数排序. 'posts_per_page' => $post_num ); $query_posts = new WP_Query(); $query_posts->query($args); while( $query_posts->have_posts() ) : $query_posts->the_post(); ?>
具体可查看知道里的详细信息以及我的回复:
http://zhidao.baidu.com/question/241553452831217284
具体代码为:
global $wp_query; $args= array( 'post_type' => 'post', 'post_status' => 'publish', // 只选公开的文章. 'post__not_in' => array(1), //排除当前文章 'orderby' => 'comment_count', // 依评论数排序. 'ignore_sticky_posts' => true, // 排除置顶文章. 'posts_per_page' => 18 ); $wp_query = new WP_Query( $args ); var_dump($wp_query->query); var_dump($wp_query->request); if ( have_posts() ) : while ( have_posts() ) : the_post(); the_title(); // to do loop endwhile; endif; wp_reset_query();
WordPress is a user friendly cms. I like your method. Thanks for informative tutorial.