Рэйчел Васкес имеет одну из самых полных статей о хуках WordPress, упорядоченных по последовательности срабатывания, которую вы можете найти вокруг, поэтому, когда вам нужно узнать, какой хук срабатывает первым, вы должны полностью проверить это: Последовательность запуска хуков WordPress !
Теперь, чтобы ответить на ваш вопрос, сначала запускается wp_head
. Проблема с вашим кодом лежит здесь:
global $wpdb, $post;
$views = $post->my_count + 1; // HERE!
Вы присваиваете $views
текущее значение $post->my_count
+ 1 (например, 5 + 1 = 6), но $post->my_count
все еще сохраняет свое старое значение (например, 5).
Если вы хотите отобразить обновленное количество просмотров, вам нужно сначала увеличить $post->my_count
:
global $wpdb, $post;
$post->my_count = $post->my_count + 1; // Increment the views count in the $post object first
$views = $post->my_count; // Assign the newly updated views count to the $views variable
Таким образом, когда ваша get_views_count()
функция вызывается, объект $post
был обновлен с правильным количеством просмотров.
Кроме:
Кажется, вы изменили таблицу wp_posts
, добавив в нее столбец my_count
. Пожалуйста, не делай этого.
Старайтесь по возможности не менять основной материал (таблицы базы данных и / или основные файлы и папки WordPress), чтобы обеспечить максимальную совместимость любых плагинов или тем, которые вы разрабатываете с будущими выпусками WordPress. Вы захотите сохранить свои данные просмотров в таблице wp_postmeta
с помощью функции update_post_meta () .