wordpress置顶文章不改变文章排序的方法


前段时间收到frontopen主题的用户反馈,说置顶文章不但会显示在置顶区域,并且在文章列表中也会显示到最前面。这样造成了两条信息重复显示,体验非常不好。

为了解决这个问题,之前尝试在loop的主循环中插入query_posts()方法,并设置相应的查询条件对文章置顶属性进行过滤。初步测试是成功了,但是随之而来的问题是导致标签页、搜索页、分类页只显示首页内容。

query_posts方法的代码如下:

161718192021<?php$display_categories = get_option(‘swt_cat_exclude’);$limit = get_option(‘posts_per_page’);$paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;$sticky = get_option(‘sticky_posts’);$args = array(‘cat’ =–> $display_categories,‘showposts’ => $limit=11,//忽略sticky_posts,即不置顶(不将置顶文章提至最前),但是输出置顶文章‘ignore_sticky_posts’ => 1,//排除置顶文章,不输出置顶文章。这一句和上一句只留一句即可,根据自己需要处理‘post__not_in’ => $sticky,‘paged’ => $paged);query_posts($args);if (have_posts()) :while (have_posts()) : the_post();/* 此处自行添加输出内容,如标题、日期、作者、摘要等 */endwhile;endif;?>

这段代码是在网上找到的一段处理与过滤置顶文章的办法,但是会导致之前说的搜索、标签、分类页面只显示首页内容的问题。为了解决这个问题,向数组内加入了s、tag等查询条件,虽然能够正常的查询到标签页与搜索页的内容,但是又会导致分类页出现问题。因此只能另寻他法。

仔细的查阅wordpress的方法说明,发现query_posts方法可以通过全局变量$query_string来设置查询过滤,并且不影响其他的查询结果。代码如下:

12global $query_string;query_posts( $query_string . ‘&ignore_sticky_posts=1′ );


上一篇:WordPress 调用同分类或指定某分类下的随机文章

下一篇:wordpress返回顶部的功能代码


Copyright © 2002-2019 测速网 www.inhv.cn 皖ICP备2023010105号
测速城市 测速地区 测速街道 网速测试城市 网速测试地区 网速测试街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!

热门搜索 城市网站建设 地区网站制作 街道网页设计 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器