通过另一个插件的 meta_value 在 WordPress 中订购自定义 post 类型

Order custom post types in WordPress by the meta_value of another plugin

我有一个自定义 post 类型的列表,我正在我的网站上显示这些类型。除了那些 post 类型之外,我还在我的 WordPress 中添加了一个插件,它允许我为每个 post 类型添加一个竖起大拇指的评级系统,所以它看起来像这样:

代码如下所示:

<?php
/* The custom post types query */
    $query = new WP_Query( array(
        "post_type" => "motto",
        "order" => "ASC",
    ));
    while($query -> have_posts()) : $query -> the_post();
?>

/* Container with the ratings from the plugin + each post type */
<div id="motto-container">
    <?=function_exists('thumbs_rating_getlink') ? thumbs_rating_getlink() : ''?>
    <h3 class="abimottos">
        <?php echo get_post_meta($post->ID, 'motto_titel', true); ?>
    </h3>
</div>

我有这些自定义 post 的列表 + 他们的评级,当然每个 post 都有一个单独的评级,我想订购我的自定义 post 类型在那些收视率的价值之后。我该如何存档?

我知道评分的 meta_key 是 _thumbs_rating_up(因为我已经用 ARI Adminer 插件修改了该值),我能以某种方式使用这个 meta_key 来在评分 meta_value 之后订购自定义 post 类型?

我对 PHP 和数据库还很陌生。

您已经在使用 WP_Query 获取帖子,因此您可以在 $args 数组中指定 meta_key 作为排序依据,例如

$query = new WP_Query( array(
    'post_type'  => 'motto',
    'meta_key'   => 'thumbs_rating_up',
    'orderby'    => 'thumbs_rating_up',
    'order'      => 'DESC'
));

请注意,您需要在 meta_keyorderby 中都包含密钥名称。我还假设您想按降序排序以首先显示最高评分。

参考:Wordpress Codex for WP_Query

此外,关于 meta_key 的注释:
meta_key 带有下划线前缀的是私有的并且对自定义字段隐藏,因此通常您会使用没有下划线的版本。这里可能不是这种情况,因为我假设无法在管理员中更改评级,但只需确保您需要使用的 meta_key 实际上是 _thumbs_rating_up 而不是 thumbs_rating_up .