我在我的网站中安装了 Yoast Seo 插件,这会恢复每个帖子的社交分享数量并将其存储在数据库中。
是否可以更改存档页面以按社交分享数量对帖子进行排序?
我已经尝试了这里列出的一些东西,但似乎无法让它工作
<?php
/* The loop */
while ( have_posts() ) : the_post();
include( locate_template( 'content-' . $layout_this . '.php' ) );
endwhile;
?>
这个可能比你想象的更难。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'
)
);
也看到这里,有人问了一个非常相似的问题:如何按元值获取帖子顺序?