当帖子达到一定数量的浏览量时的操作挂钩

时间:2013-06-05 作者:whiteletters in blankpapers

我正在使用WP Post Views 显示帖子视图数的插件。我使用:

<?php if(function_exists(\'the_views\')) { the_views(); } ?>
我正在为我的wordpress网站创建一个徽章系统。我的实际目标是为帖子的浏览量创建一个徽章:如果一篇帖子的浏览量超过某个阈值,那么作者将获得该徽章。

如何使用动作挂钩实现这一点?到目前为止,我创建的所有徽章都使用动作挂钩的原理(例如,与作者发布的帖子数量相关的徽章使用post\\u publish动作挂钩)。我是否应该寻找除挂钩以外的其他方法来获取视图徽章?

谢谢你的帮助。

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

使用来自的操作update_post_meta():

do_action( 
    "updated_{$meta_type}_meta", // example: updated_post_meta
    $meta_id, 
    $object_id, // post ID
    $meta_key, // \'view\'
    $_meta_value // view count
);
类似的方法应该可以工作(未经测试):

add_action( \'update_post_meta\', \'badge_check\', 10, 4 );

function badge_check( $meta_id, $post_id, $key, $value )
{
    if ( \'views\' !== $key or 1000 > $value )
        return;

    $user = wp_get_current_user();

    if ( ! $user->ID )
        return;

    update_user_meta( $user->ID, \'badge\', \'Kilo viewer\' );
}

结束

相关推荐

Implement Hooks Using Array

我试图在一个主题中实现一些钩子,但不是用重复的代码写出每个钩子,而是想知道是否可以使用和数组来声明钩子。E、 g.通常,我会使用类似以下内容:function hook_name_1() { do_action( \'hook_name_1\' ); } function hook_name_2() { do_action( \'hook_name_2\' ); } 有没有办法将钩子名称放入一个数组中,然后用一个foreach循环