Intereting Posts
Как удалить в базе данных WordPress все сообщения, кроме последних трех? Крюк на публикацию сообщения не срабатывает правильно (или так я думаю) Как я могу обратиться к существующей категории? Как распределить категории по нескольким типам сообщений? Фильтр Пользовательский тип сообщения другим типом персонализированного сообщения Элементы меню внезапно отображаются на всей странице Можно ли дать пользователю возможность выбрать между двумя отдельными файлами шаблонов для использования в сообщении? Горизонтальный скроллер с функцией post_thumbnail Как переместить многострочный WordPress? добавление короткого кода в пользовательский тип сообщения Отсутствующие изображения в каталоге загрузок (только для сервера) Как читать длину выдержки (для if-condition) отображать определенный виджет на странице Изменить счетчики в панели администратора content-single.php не отображает the_content ()

Обновление метаданных для массового редактирования / обновления

У меня небольшая проблема с кодом, который работает большую часть времени. Я только что обнаружил, что он не может использоваться, когда я редактирую собственный тип сообщений. Если я попал на отдельную почтовую страницу и ударяю публикацию, пользовательский тип публикации публикуется, и пользовательский мета обновляется.

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

function sa_ads_count() { global $wpdb, $post; $authordata = get_userdata($post->post_author); $author = $authordata->ID; // get initial count $single = true; $ads_count = get_user_meta( $author, 'ads_count', $single ); if ( strlen( $ads_count ) > 0 ) { $ads_count = intval( $ads_count ); // make sure it's a number $ads_count++; // increment by one } else { // meta isn't set, so we'll create it $rows = $wpdb->get_results( $wpdb->prepare( "SELECT post_status, COUNT(ID) as count FROM $wpdb->posts WHERE post_author = %d AND post_type = 'post_type' GROUP BY post_status", $author ) ); $stats = array(); foreach ( $rows as $row ) $stats[ $row->post_status ] = $row->count; $ads_count = isset($stats['publish']) ? $stats['publish'] : 0; } update_user_meta( $author, 'ads_count', $ads_count ); } add_action( 'pending_to_publish', 'sa_ads_count' ); 

Любая идея, что здесь не так? Это ограничение WordPress, или это можно решить? Дело в том, что мне нужен этот крюк, поскольку я хочу только подсчитывать и хранить для каждого пользователя, количество сообщений, которые я одобряю и публикую.

Позже я хочу изменить новый статус публикации, чтобы публиковать его на основе количества сообщений, одобренных пользователем. Этого я уже достиг.

Solutions Collecting From Web of "Обновление метаданных для массового редактирования / обновления"