在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_'开头,然后附加'type','month'和'year'。我尝试过使用glob()
$current_views = get_post_meta($post->ID, glob("icc_views_*"), true);
以完成文件名,因此无论如何都会返回类型,月份和年份,但似乎无法使其生效。
任何指针都会非常感激
答案 0 :(得分:0)
我认为你不能这样做:
PHP“glob()”扩展了文件系统(操作系统级别)路径名。我相信Wordpress“get_post_meta()”是指存储在数据库中的自定义字段。苹果和橘子。
数据库通配符符号为“%”。我不认为它可以与“get_post_meta()”一起使用。
'希望有所帮助..
答案 1 :(得分: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'这个词。我在这里错过了什么基础吗?
再次感谢您的反馈,非常有帮助