检查帖子是否为第一次访问

时间:2019-03-16 作者:Martin

如何检查帖子是否第一次访问?如果这个帖子从来没有人访问过。

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

您可以尝试使用自定义元字段来实现这一点。在里面functions.php 请填写以下内容:

// add the tracker in your header by using wp_footer hook
function is_viewed ($post_id) {

    if ( !is_single() ) return;


/*

At times queries performed in other templates such as sidebar.php may corrupt certain conditional tags. 
For instance, in header.php a conditional tag works properly but doesn\'t work in a theme\'s footer.php.
The trick is to put wp_reset_query before the conditional test in the footer.
https://codex.wordpress.org/Conditional_Tags#In_a_theme.27s_footer.php_file

*/
    wp_reset_query();

    if ( empty ( $post_id) ) {
        global $post;
        $post_id = $post->ID;
    }

    if ( !has_views($post_id) ){

        // This post is visited for the first time

        // add post meta to mark this post as viewed
        add_post_meta($post_id,\'viewed\', "YES", true);
     }
}
add_action( \'wp_footer\', \'is_viewed\');

function has_views($post_id){
  if (!get_post_meta($post_id,\'viewed\',true)) return false;
  else return true;
}
然后您可以使用has_views($post_id) 您想测试帖子是否第一次访问的任何地方

相关推荐

如何在重定向wp-login.php的同时仍允许注销和其他操作?

我的目标:重定向前往wp登录的访问者。php(或尝试注册的用户)访问主页。但仍允许wp登录。php在注销、丢失密码和重置密码等特定操作期间运行。我们在另一个问题中使用了代码,使我们几乎达到了目标。(How to use wp-login.php page only for logout?) 我们的修改添加了lostpassword和密码重置操作。这就是我们现在所拥有的:// Allow logout and lost password actions but redirect to the home pa