php - Wordpress:单击按钮/链接时对内容进行动态排序

标签 php wordpress

我需要一些功能方面的帮助。我正在尝试创建一个可以动态排序的帖子页面,以显示用户希望看到的帖子

使用场景:

在Post中,有4个title ei:Title A, Title B, Title C, Title D。

标题 A = CARAMOAN 回顾;

标题 B = 目的地:公主港;

标题 C = 免费往返机票可以让您看到的东西;

标题 D = 在菲律宾旅行时要记住的五件事;

现在我想按以下方式排序:

评论最多

观看次数最多

字母 - 升序

用户可以通过单击看起来像这样的按钮来更改页面顺序。

enter image description here

最佳答案

最简单的方法是使用查询字符串。

我假设您正在查看类别页面。

首先我们将按钮添加到类别页面

<a href="?sortby=comment>Sort by Comment</a>
<a href="?sortby=views>Sort by Views</a>
<a href="?sortby=alphabet>Alphabetical</a>

这会向页面的 URL 添加一个查询字符串,现在我们将在类别页面 的顶部添加此代码:

<?php
if (array_key_exists("sortby", $_GET) === true)
{
    $newQuery = sortIt($_GET['sortby']);
}
?>

之后,我们将创建一个函数,在 functions.php 模板中为我们排序帖子

由于我们有 3 种排序类型,我们可以使用 switch case 或 if-else 语句。我将在这里使用 if-else。

<?php
function sortIt($sortType)
{
    global $wp_query;
    $cat_ID = get_query_var('cat');

    if (strcmp($sortType, 'comment') == 0 )
    {
        $newQuery = new WP_Query( array( 'orderby' => 'comment_count' , 'cat' => $cat_ID, 'posts_per_page' => '10') );
    }

    if (strcmp($sortType, 'views') == 0 )
    {
        $newQuery = new WP_Query( array( 'meta_key' => 'views', 'orderby' => 'meta_value_num', 'order'=> 'DESC', 'cat' => $cat_ID, 'posts_per_page' => '10') );
    }

    if (strcmp($sortType, 'alphabetical') == 0 )
    {
        $newQuery = new WP_Query( array( 'orderby' => 'title' , 'cat' => $cat_ID, 'posts_per_page' => '10') );
    }

    return $newQuery;
}
?>

Wordpress 没有 native View 计数,我使用了我阅读过的说明 here .

由于我们拥有所有必要的函数和变量,因此我们需要覆盖查询。

您将编辑循环,使其如下所示:

<?php if ( $newQuery->have_posts() ) : while ( $newQuery->have_posts() ) : $newQuery->the_post(); ?>

就是这样:)

关于php - Wordpress:单击按钮/链接时对内容进行动态排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9848593/

相关文章:

php DirectoryIterator 按日期排序文件

php - 获取当前帖子的 WordPress 帖子 ID

wordpress - Docker 和 BrowserSync

javascript - 如何使用 Google Analytics 跟踪 IFrame 中的点击次数?

javascript - service worker 不在现场工作,而是在本地工作

php - 使用 mysql MATCH AGAINST 搜索多个单词

PHP 条件函数根据 PINTEREST 的可用性获取不同的图像集

php - mysql——创建新表还是不创建

php - ZipArchive 无法打开文件 - 错误代码 : 19

wordpress - 更改添加到购物车按钮与 woocommerce 中的产品查询表格