根据视图更新ID

时间:2016-02-02 23:47:14

标签: php wordpress

目前我有以下代码块。

<?php 
$count = get_tptn_post_count_only($POST_ID);
$rating_class = 'hot3';
        if( $count >= 0 && $count <= 3 )
{
$rating_class = 'hot3';
}
        elseif( $count > 4 && $count <= 10 )
{
    $rating_class = 'hot2';
}
        elseif( $count > 11 && $count <= 20 )
{
    $rating_class = 'hot1';
}
        elseif( $count > 5000 )
{
    $rating_class = 'hot1';
} 
?>

现在我要做的是跟踪我的帖子上的视图,然后如果超过提供的数字更新我的索引页面上的图像相应的它似乎不适用于除{{1}之外的任何其他内容}部分是第一层。

我目前正在使用名为Top 10的插件进行所有视图跟踪。 如果您有兴趣看到我的整个循环,您可以here

编辑:Plugin Settings

文件counter.php内的

hot3&lt; - 另一个小提琴链接。

2 个答案:

答案 0 :(得分:2)

在不使用上面的插件并使用我在某个博客上找到但使用类似方法的工具的情况下找到了修复程序。

Functions.php Source

function getPostViews($postID){
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
        return "0 View";
    }
    return $count.' Views';
}
function setPostViews($postID) {
    $count_key = 'post_views_count';
    $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);
    }
}

// Remove issues with prefetching adding extra views
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

Single.php 文件的索引中设置此项。

<?php
      setPostViews(get_the_ID());
?>

然后在你的索引循环上实现它。

<?php 

$count = getPostViews(get_the_ID());
    $rating_class = 'hot3';
        if( $count >= 0 && $count <= 1000 )
{
    $rating_class = 'hot3';
}
        elseif( $count > 1000 && $count <= 2500 )
{
    $rating_class = 'hot2';
}
        elseif( $count > 2500 && $count <= 5000 )
{
    $rating_class = 'hot1';
}
        elseif( $count > 5000 )
{
    $rating_class = 'hot1';
} 
print $count;
?>

答案 1 :(得分:0)

我不确定你想做什么。我甚至不熟悉Wordpress(我认为这就是你所使用的)。但我发现您的代码可能存在一些错误:

你有if( $count >= 0 && $count <= 3 )然后elseif( $count > 4 && $count <= 10 )之类的东西。在这种情况下,数字4将不是有效数字。 Yu必须使用$count >= 4$count > 3。相同的错误对数字1121-5000范围内有效。

希望得到这个帮助。