我正在使用一个重定向插件,它将重写添加到永久链接中。我想数一数前端的浏览量,因为我无法加入单曲。因此,php。这似乎很接近,但它并没有增加视图的元值。我不确定在哪里调试,或tr
以下是我目前的代码:
我从抄本上复制了大部分内容,这里还有另一个问题。下面是javascript片段:
jQuery(document).ready(function($) {
$(\'.external\').click(function(event) {
// had to add the post id to the permalink in loop as url to postid didn\'t work
var postID = $(this).attr(\'id\');
var data = {
action: \'inc_views\',
post_id: postID
};
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
jQuery.post(ajaxurl, data, function(response) {
//update the custom field value without a page refresh
});
});
});
下面是函数中的代码片段。php:
function increment_post_views() {
global $wpdb; // is this needed?
$post_id = intval( $_POST[\'post_id\'] );
$meta_key = \'views-\' . $post_id;
// increment the views
$views = get_post_meta( $post_id, $meta_key, true );
update_post_meta( $post_id, $meta_key, intval( $views ) + 1 );
die();
}
add_action(\'wp_ajax_inc_views\', \'increment_post_views\');
update: 一些进展
以下代码更新确实会增加post视图计数,但不会继续到实际的post。如果我取消对窗口的注释。位置,它会重定向,但视图计数不会增加。
jQuery(document).ready(function($){
$(\'.external\').click(function(e){
e.preventDefault();
var redirect = $(this).attr(\'href\');
$.post(ajax_object.ajaxurl, {action:\'inc_views\',post_id:$(this).attr(\'id\')});
//window.location = redirect;
});
});
final: 这很有效
jQuery(document).ready(function($){
$(\'.external\').click(function(e){
e.preventDefault();
var redirect = $(this).attr(\'href\');
$.post(ajax_object.ajaxurl, {action:\'inc_views\',post_id:$(this).attr(\'id\')}, function() {
window.location = redirect;
});
return false;
});
});