Intereting Posts
Отфильтровать второй раскрывающийся список (налог) на основе первого раскрывающегося списка (cpt) Запрос без терминов использует шаблон index.php вместо archive.php Установка значения атрибута name с полями ввода cforms Пользовательский плагин, один перевод переопределяет другие языки Регистрация / вход в систему и публикация / обновление 1 пользовательский пост Параметры Permalink не меняются Сортировка / отображение последних сообщений по дате публикации Добавить пользовательские атрибуты в сообщение Крюк администратора на странице входа отображение будущих сообщений на странице даты Скрыть тему в списке тем в wp-admin без редактирования файлов ядра Как превратить все вставленные изображения в сообщение в ссылки на изображения? WordPress только как бэкэнд. Как выводить содержимое базы данных на публичной стороне без WordPress? Недопустимая тема, шаблон отсутствует Как сделать короткий код слайд-шоу на основе короткого кода в WordPress?

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

Я создал плагин 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' ); ?>