Ваш вопрос лежит в пределах:
jQuery('#user-messages span').text("Unread Messages: (<?php echo messages_get_unread_count(); ?>)");
Что происходит, когда страница загружается, PHP обрабатывает функцию messages_get_unread_count()
и использует это значение для визуализации страницы. Оттуда сгенерированный JavaScript будет вызываться через ваш интервал, но у него будет статическое значение, определенное в вашей предварительно обработанной разметке.
Вам понадобится AJAX-вызов на URL, который вернет счетчик ваших сообщений.
Это функция, позволяющая получать обновленное количество сообщений.
function add_message_count_js() {
?>
<script type="text/javascript">
//<![CDATA[
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);
//]]>
</script>
<?php
}
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.