0

在 Wordpress 中使用 PHP 我有一组函数,这些函数当前返回每个帖子每个月和每年的点击次数,并按类型进一步分类。由于当前保存了所有这些信息,我想返回每个帖子的总点击次数,无论类型如何,也忽略时间。即提供运行总命中数。

目前的功能是:

    function icc_get_view_count($type,$month,$year) {
       global $post;
       if(!isset($month)||($month=='')||!isset($year)||($year=='')) {
       $month = date('m');
       $year = date('Y');
       }
       $post_type = $post->post_type;
       if($post_type == 'partners') {
$post->ID;
$current_views = get_post_meta($post->ID, "icc_views_".$type."_".$month."_".$year, true);
if(!isset($current_views) OR empty($current_views) OR !is_numeric($current_views) ) {
     $current_views = 0;
}
}

return $current_views;
}

function icc_show_views($type,$month,$year) {
   global $post;
   if(!isset($month)||($month=='')||!isset($year)||($year=='')) {
   $month = date('m');
   $year = date('Y');
   }

   $post_type = $post->post_type;
   if($post_type == 'partners') {
echo $current_views = icc_get_view_count($type,$month,$year);
   }
}

然后由以下方式调用:

   <?php icc_show_views('single', $month, $year); ?>

所有帖子都以“icc_views_”开头,然后附加“类型”、“月”和“年”。我试过使用 glob()

    $current_views = get_post_meta($post->ID, glob("icc_views_*"), true);

完成文件名,因此无论如何都会返回类型、月份和年份,但似乎无法使其正常工作。

任何指针将不胜感激

4

2 回答 2

0

谢谢您的帮助。我想也许我应该寻找一个更简单的答案,并通过首先从每个 post_id 获取命中总和然后根据需要排除来从另一端工作。所以我在阅读其他问题和答案后提出了这个基础:

function icc_show_total_views($hits) {
   global $post;
   $post_type = $post->post_type;
   if($post_type == 'partners') {
    echo $current_views = get_post_meta_hits($post_id);
   }
}

function get_post_meta_hits($post_id){

    global $wpdb;
    $data   =   array();
    $wpdb->query("
            SELECT sum('meta_value')
            FROM $wpdb->postmeta
            WHERE `post_id` = $post_id
                    ");

    foreach($wpdb->last_result as $k => $v){
        $data[$v->meta_value] =   $v->meta_value;
    };
    return $data;
}

但这会返回单词“Array”。我在这里错过了一些基础知识吗?

再次感谢反馈,很有帮助

于 2012-06-15T15:01:36.270 回答
0

我认为你不能这样做:

  1. PHP“glob()”扩展文件系统(操作系统级别)路径名。我相信 Wordpress “get_post_meta()” 是指存储在数据库中的自定义字段。苹果和橙子。

  2. 数据库通配符将是“%”。无论如何,我认为它不能与“get_post_meta()”一起使用。

'希望有帮助..

于 2012-06-14T19:12:35.573 回答