Intereting Posts
Сбросить запрос WordPress Post по умолчанию WP_query, чтобы получить первые два последних сообщения, затем еще один цикл, чтобы получить следующие три Масонство Добавить сообщения WordPress с помощью singleMode $ wpdb-> base_prefix не получает родительский префикс сайта в многопользовательском режиме Три столбца Импорт и замена существующего содержимого страницы / сообщения Как скрыть определенные ящики таксономии от пользователей в админе, добавить страницу сообщения? Возможно ли отобразить DIV для неавторизованных пользователей, а затем изменить его для пользователей, которые вошли в систему? Идентификатор лицевой страницы перевести кнопку «загрузить больше» Создание архивов вложений в тегах и категориях Добавить пользовательский столбец в список пользовательских сообщений Выпадающий список Тип расширенного списка TinyMCE почему код javascript, а не повторять основной текст wordpress Metabox для отображения / хранения определенного типа тега post

Пользовательские значения метаданных отправляются с помощью автосохранения

Я создал плагин post view counter, который увеличивает счет каждый раз, когда сообщение просматривается / обновляется.

Счетчик работает нормально, однако при редактировании живого сообщения функция автосохранения появляется, чтобы захватить счетчик просмотров, когда создается автосохранение, поэтому, когда я обновляю сообщение, количество просмотров уменьшается, поскольку количество просмотров с момента создания автосохранения используется, а не текущая стоимость.

Например, число просмотров = 100, я открываю сообщение для редактирования, создается автосохранение, между тем 50 человек просматривают сообщение, я нажимаю обновление на почте, количество просмотров падает с 150 до 100

Мой код плагина:

function update_post_views_counter() { if(is_single()) { if(get_post_type() == "post") { $id = get_the_ID(); $views = get_post_meta($id, "total_views", true); if($views == "") { $views = 1; add_post_meta($id, "total_views", $views); } else { $views++; update_post_meta($id, "total_views", $views); } maintain_top_posts($id, $views); } } } add_action("wp_head", "update_post_views_counter"); 

Есть ли способ исключить обновление meta-значения total_views после обновления сообщения, когда автосохранение было создано или нет?

Это отличается от того, что общие мета-значения теряются, поскольку данные публикуются только не в самых последних данных

Solutions Collecting From Web of "Пользовательские значения метаданных отправляются с помощью автосохранения"

Мне удалось найти причину этого и создать решение, подходящее для моих нужд.

В параметрах экрана на странице редактирования сообщений есть опция «Пользовательские поля». В нем перечислены все пользовательские мета-значения, которые были сохранены в сообщении, и вы можете создавать новые и редактировать существующие.

При открытии сообщения для редактирования счетчик просмотров в этот момент добавляется в поле ввода в разделе «Пользовательские поля». Когда я сэкономлю несколько минут спустя, хотя количество просмотров увеличилось, опубликованное значение по-прежнему остается тем, что было добавлено при открытии окна редактирования.

Чтобы исправить это, я добавил следующий код в файл функций моих тем, чтобы удалить раздел «Пользовательские поля» из окна редактирования.

 <?php function remove_post_custom_fields() { remove_meta_box( 'postcustom' , 'post' , 'normal' ); } add_action( 'admin_menu' , 'remove_post_custom_fields' ); ?>