您的问题在于内:
jQuery('#user-messages span').text("Unread Messages: (<?php echo messages_get_unread_count(); ?>)");
当页面加载PHP处理messages_get_unread_count()功能,并使用该值来渲染页面正在采取哪些是。从那里生成的JavaScript将在您的时间间隔内被调用,但它会在您的预处理标记中定义一个静态值。
您需要对网址进行AJAX调用才能返回您的消息数量。
这是允许您获取更新的消息数的功能。
function add_message_count_js() {
?>
//
var msg_count;
function updateMessages() {
jQuery.ajax({
type: 'POST',
url: '<?php echo admin_url('admin-ajax.php'); ?>',
data: {"action": "view_message_count"},
success: function(data) {
jQuery('#user-messages span').text("Unread Messages: "+data);
}
});
return false;
}
setInterval('updateMessages()', 10000);
//]]>
}
add_action('wp_head', 'add_message_count_js');
这将添加适当的AJAX挂钩。
add_action('wp_ajax_view_message_count', 'view_message_count');
add_action('wp_ajax_nopriv_view_message_count', 'view_message_count');
function view_message_count() {
if (is_user_logged_in())
echo messages_get_unread_count();
die();
}
这两个片段应该放在你的functions.php文件中。