缪小春 發表於 2023-9-15 00:00:00

WordPress搜索结果按浏览量排序的实现方法

<p>
默认情况下,WordPress 存档页面或搜索结果页面中的日志排列次序是按照从新到旧来排列的,这里我们暂且不管存档页面情况如何,先来说说这个搜索结果页面。如果我们想要搜索结果的日志按照浏览次数的多少来排列,也就是说,被浏览次数较多的日志排在前面,反之,被浏览次数较少的日志则排在后面,如何实现?方法很简单!</p>
<p>
第一步,先安装 Lester Chan 的一个插件WP-postviews。</p>
<p>
关于这款插件,相信大家都不会陌生的了,它的这主要作用就是用来统计日志被浏览的次数的,这方面在这里就不再多说。好了,去到 WordPress 后台搜索 WP-previews 插件,安装并启用。</p>
<p>
第二步,打开当前主题文件夹中的 functions.php 文件,添加以下代码,位于最后一个?&gt;之前(如果?&gt;存在的话)。</p>
<blockquote>
<ol>
<li>
<span><span>// SEARCH FILTER    </span><span> </span></span>
</li>
<li>
<span><span>function</span><span> base6_search_filter($query)     </span></span>
</li>
<li>
<span>{     </span>
</li>
<li>
<span>    <span>if</span><span>( $query-&gt;is_search )     </span></span>
</li>
<li>
<span>    {     </span>
</li>
<li>
<span>      $query-&gt;set(<span>'v_sortby'</span><span> , </span><span>'views'</span><span>);     </span></span>
</li>
<li>
<span>      $query-&gt;set(<span>'v_orderby'</span><span> , </span><span>'desc'</span><span>);     </span></span>
</li>
<li>
<span>      add_filter(<span>'posts_fields'</span><span>, </span><span>'views_fields'</span><span>);     </span></span>
</li>
<li>
<span>      add_filter(<span>'posts_join'</span><span>, </span><span>'views_join'</span><span>);     </span></span>
</li>
<li>
<span>      add_filter(<span>'posts_where'</span><span>, </span><span>'views_where'</span><span>);     </span></span>
</li>
<li>
<span>      add_filter(<span>'posts_orderby'</span><span>, </span><span>'views_orderby'</span><span>);     </span></span>
</li>
<li>
<span>    }     </span>
</li>
<li>
<span>}      </span>
</li>
<li>
<span>add_filter(<span>'pre_get_posts'</span><span> , </span><span>'base6_search_filter'</span><span>);    </span></span>
</li>
</ol>
</blockquote>
<p>
记得保存更改。这段代码的作用已经很明了,当访问者通过搜索进入搜索结果页面时,会发现被浏览次数最多的日志排在了顶部。</p>
<p>
提示:如果你是刚刚安装了 WP-postviews 这款插件就做以上修改的话,效果可能要过一阵才能看到。</p>
頁: [1]
查看完整版本: WordPress搜索结果按浏览量排序的实现方法