创建热门和热门栏目的最佳方法

时间:2015-01-02 作者:Robert hue

我将在网站上实现一个热门和趋势部分。我在许多热门网站上看到过这样的部分,但我真的不知道这到底是怎么回事。

虽然我认为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 );
    }
  }
}

5 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

在我个人看来,这可能会占用一些资源,因此您需要实现某种类型的缓存系统,甚至需要查看瞬态

您要做的是扩展当前的后视图功能,甚至为此创建一个后视图功能。您可能希望捕获每个视图两次,一次用于当前的正常页面视图($count_key) , 其次,对于使用maybe的自定义视图函数$custom_count_key

现在,这就是$custom_count_key 将工作:

当按正常方式访问页面(post)时,会记录页面视图

根据您想如何定义Trending section. 这将再次将值设置为0 在新的一天/一周/等开始时

您需要做什么:

如上所述,可以扩展或编写另一个页面视图函数来存储每日/每周/etc视图

创建一个每天/每周等特定时间运行的函数(以您需要的更好的为准),该函数将删除/清除该元字段的值。

创建自定义查询,以查询特定日期/周/等中具有最高浏览量的x数量的帖子。此查询检索到的帖子在每一天/周/等中都会有所不同,因为每个帖子的浏览量都会因页面访问而增加。

在删除/清除特定日期/周/等结束时的当前值之前,您还可以将一天/周/等的结果保存在db中以供将来参考,但这取决于您自己,甚至可能只是浪费时间和空间

这只是一个你可以使用的基本想法。我现在无法编写这样的代码,但是如果您使用这个想法来发布您的最终工作解决方案,那将是非常好的

祝你好运,在这个项目上一切顺利

SO网友:Rarst

趋势背后的典型理念是在最近短时间内流行的内容。如果您只捕获内容的全部帖子视图,那么您可能没有数据来实现它。

例如:

A帖已有100天的历史,总共有10万次浏览量,每天大约有1千次浏览量A长期以来很受欢迎,但B目前正在成为趋势(尽管在此之前,它的每日和所有时间的流量水平都低于A)。

您需要能够说出“滚动”值,不仅是帖子生命周期中的视图,还需要知道这些视图是如何在时间上分布的(以某种可以接受的精度)。

SO网友:Shady M Rasmy

通过在两个值之间使用,

Example

后视图元值>=1000,另一个后视图元值=<;3000和热门页面

元值=>3001我现在无法发布代码,我来自手机,我在我的漫画网站上使用了这个

SO网友:rafsuntaskin

正如@cybmeta所说。。。您可以根据需要定义趋势。但我认为你应该考虑在趋势帖子中使用社交分享价值。如果您使用任何社交共享插件,那么您可以从中提取价值。

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。此代码是当今的趋势。这段代码在我的站点和工作环境中进行了测试,我还每周、每月和所有时间添加

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post