我正在尝试为我的广告添加简单的视图计数器,下面的代码似乎一切都很好,但只是每次在“更新”帖子上插入新行。如果post id存在,则不应在该表中添加或修改任何内容,只需忽略,以便视图计数器将使用同一行,而不是
用于在发布或更新时插入行的函数
function get_publishing_id($post_id) {
global $wpdb;
$post= get_post($post_id);
if ($post->post_type == \'post\'
&& $post->post_status == \'publish\') {
if(empty ($counter)) {
$counter = 1;
$wpdb->insert(
$wpdb->prefix . \'advert_views\',
array(
\'postid\' => $post->ID,
\'view_count\' => $counter,
),
array(
\'%d\',
\'%d\'
)
);
}
} // end if
} // end function
add_action(\'save_post\',\'get_publishing_id\');
用于在视图上更新表的函数
function update_counter($post_id){
global $wpdb;
$query = "SELECT view_count FROM ".$wpdb->prefix."advert_views WHERE postid = $post_id";
$query_run = mysql_query($query);
if(mysql_num_rows($query_run) > 0) {
$count = mysql_result($query_run, 0, \'view_count\' );
$count_inc = $count + 1;
$query_update = "UPDATE ".$wpdb->prefix."advert_views SET view_count = $count_inc WHERE postid = $post_id";
@$query_update_run = mysql_query($query_update);
}
}
还有一件事我想知道
function udaate_counter()
我需要
@$query_update_run = mysql_query($query_update);
或者可以使用其他方式?