我将在网站上实现一个热门和趋势部分。我在许多热门网站上看到过这样的部分,但我真的不知道这到底是怎么回事。
虽然我认为Hot section
是我自定义开发的最受欢迎的帖子(基于帖子视图)WP_Query
. 这是可行的。
$args = array(
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'meta_key\' => \'post_views\',
\'orderby\' => \'meta_value_num\',
\'ignore_sticky_posts\' => 1,
\'paged\' => $paged,
);
$hot_query = new WP_Query( $args );
但我还是坚持
Trending section
. 创建自定义查询的具体想法是什么。
我想知道获取每个部分内容的最佳方法是什么。我试着在谷歌上搜索了几天,但没有找到任何有用的东西。
EDIT
我的帖子视图功能。
function set_post_views( $postID ) {
if ( is_singular() ) {
$count_key = \'post_views\';
$count = get_post_meta( $postID, $count_key, true );
if ( $count==\'\' ) {
$count = 0;
delete_post_meta( $postID, $count_key );
add_post_meta( $postID, $count_key, \'0\' );
} else {
$count++;
update_post_meta( $postID, $count_key, $count );
}
}
}
最合适的回答,由SO网友:Pieter Goosen 整理而成
在我个人看来,这可能会占用一些资源,因此您需要实现某种类型的缓存系统,甚至需要查看瞬态
您要做的是扩展当前的后视图功能,甚至为此创建一个后视图功能。您可能希望捕获每个视图两次,一次用于当前的正常页面视图($count_key
) , 其次,对于使用maybe的自定义视图函数$custom_count_key
现在,这就是$custom_count_key
将工作:
当按正常方式访问页面(post)时,会记录页面视图
根据您想如何定义Trending section
. 这将再次将值设置为0
在新的一天/一周/等开始时
您需要做什么:
如上所述,可以扩展或编写另一个页面视图函数来存储每日/每周/etc视图
创建一个每天/每周等特定时间运行的函数(以您需要的更好的为准),该函数将删除/清除该元字段的值。
创建自定义查询,以查询特定日期/周/等中具有最高浏览量的x数量的帖子。此查询检索到的帖子在每一天/周/等中都会有所不同,因为每个帖子的浏览量都会因页面访问而增加。
在删除/清除特定日期/周/等结束时的当前值之前,您还可以将一天/周/等的结果保存在db中以供将来参考,但这取决于您自己,甚至可能只是浪费时间和空间
这只是一个你可以使用的基本想法。我现在无法编写这样的代码,但是如果您使用这个想法来发布您的最终工作解决方案,那将是非常好的
祝你好运,在这个项目上一切顺利
SO网友:Shady M Rasmy
趋势页查询
$today = getdate();
$args = array(
\'meta_key\' => \'post_views\',
\'meta_value\' => \'1000\',
\'meta_compare\' => \'>=\',
\'orderby\' => \'meta_value_num\',
\'ignore_sticky_posts\' => 1,
\'paged\' => $paged,
\'date_query\' => array(
array(
\'year\' => $today[\'year\'],
\'month\' => $today[\'mon\'],
\'day\' => $today[\'mday\'],
),
),
);
$trenquery = new WP_Query( $args );
热页查询应相同,但元值应大于等于3000。此代码是当今的趋势。这段代码在我的站点和工作环境中进行了测试,我还每周、每月和所有时间添加