2012-06-14 41 views
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_',然後用 '類型', '月' 和「附加年'。我一直在使用水珠()

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

完成文件名這樣的類型,月,年的所有返回無論嘗試,但似乎無法得到這個工作。

任何指針將不勝感激

+0

:http://wordpress.stackexchange.com/ – dnagirl

+0

水珠()返回一個數組,而get_post_meta的第二個參數( )期望一個字符串。 – duncmc

+0

PHP「glob()」不適用於mysql表!這就是get_post_meta()所使用的! – paulsm4

回答

0

我不認爲你可以這樣做:

  1. PHP 「水珠()」 擴展文件系統(OS級)的路徑名。我相信Wordpress「get_post_meta()」是指存儲在數據庫中的自定義字段。蘋果和桔子。

  2. 數據庫通配符將爲「%」。無論如何,我不認爲它可以和「get_post_meta()」一起使用。

「希望幫助..

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'。我在這裏錯過了什麼基礎嗎?再次

感謝您的反饋,非常有幫助

你可能想張貼此在WordPress堆棧
相關問題