0

我在我的网站中安装了 Yoast Seo 插件,这会恢复每个帖子的社交分享数量并将其存储在数据库中。

是否可以更改存档页面以按社交分享数量对帖子进行排序?

我已经尝试了这里列出的一些东西,但似乎无法让它工作

<?php
/* The loop */
while ( have_posts() ) : the_post();
   include( locate_template( 'content-' . $layout_this . '.php' ) );
endwhile;
?>
4

1 回答 1

1

这个可能比你想象的更难。Yoast SEO 实际上并不存储任何给定社交媒体渠道实际共享的次数。这是通过不断地从相应的社交媒体 API 运行检查来完成的,并将检索在相应帖子上发生的分享/喜欢的数量。

基本上需要做的是您需要以类似 Yoast 的方式连接到 API,然后开始比较从 API 发回的值,以便在前端对您的帖子进行排序数最多的股份。

该功能的想法非常有用......我希望将来可能会添加一个新表,可能会使用 Yoast 插件来实际保存这些数据,而不必参考 API。

编辑:理论上,如果您知道您正在从数据库中使用哪些元值,那么这应该是可能的。只要帖子与这些值相关联,这应该是可能的。您也可以使用特定的元键查询帖子并对其进行排序。以下是您的模板中可能适用的示例,并进行了一些调整。

$args= query_posts(
    array(  'post_type' => 'your post type', //for posts, enter 'post'
            'order'     => 'ASC',
            'meta_key' => 'some_key', //the meta key
            'orderby'   => 'meta_value', //or 'meta_value_num'
    )
);

也看到这里,有人问了一个非常相似的问题:如何按元值获取帖子顺序?

于 2018-04-12T19:33:29.773 回答