Intereting Posts
Безопасно ли обновлять обновление данных WooCommerce? Как подсчитать количество месячных архивов? Зарегистрируйтесь / Войдите, используя только номер телефона? Дашикон и Псевдо: до Перенаправить URL-адрес на существующую страницу с строкой запроса или #! добавлено Переопределить количество сообщений по умолчанию для одного цикла? Необходимо изменить метатеги WordPress … Включает короткие текстовые сообщения WordPress Как проверить скорость сайта? Можно ли добавить дополнительный уровень управления версиями в номера версий версий wordpress для детей? Как проверить, опубликовано ли сообщение сегодня? Как добавить открытые теги? Изменение размера шрифта на основе определенного шрифта через javascript Имеет ли пустой плагин какие-либо накладные расходы? Включить таксономию в URL-адрес? $ wpdb не определяется в функции: Неустранимая ошибка: вызов функции-функции-члена () для не-объекта

Удаление «вырванных» сообщений из почтового счета в пользовательских таксономических условиях?

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

Размещено в functions.php:

//Job count function wt_get_category_count($input = '') { global $wpdb; if($input == '') { $category = get_the_category(); return $category[0]->category_count; } elseif(is_numeric($input)) { $SQL = "SELECT $wpdb->term_taxonomy.count FROM $wpdb->terms, $wpdb->term_taxonomy WHERE $wpdb->terms.term_id=$wpdb->term_taxonomy.term_id AND $wpdb->term_taxonomy.term_id=$input"; return $wpdb->get_var($SQL); } else { $SQL = "SELECT $wpdb->term_taxonomy.count FROM $wpdb->terms, $wpdb->term_taxonomy WHERE $wpdb->terms.term_id=$wpdb->term_taxonomy.term_id AND $wpdb->terms.slug='$input'"; return $wpdb->get_var($SQL); } } 

Размещено в файле шаблона: (термин, расположенный по id)

 <?php echo wt_get_category_count('26'); ?> 

Это известная ошибка WordPress .

Есть некоторые обходные пути, например:

 add_action( 'edited_term_taxonomy','wpse26548_edited_term_taxonomy', 10, 2 ); function wpse26548_edited_term_taxonomy($term,$taxonomy) { global $wpdb,$post; //in quick edit mode, $post is an array() //in full edit mode $post is an object if ( is_array( $post )) $posttype=$post['post_type']; else $posttype=$post->post_type; if ($posttype) { $DB_prefix=$wpdb->get_blog_prefix(BLOG_ID_CURRENT_SITE); $sql = "UPDATE ".$DB_prefix."term_taxonomy tt SET count = (SELECT count(p.ID) FROM ".$DB_prefix."term_relationships tr LEFT JOIN ".$DB_prefix."posts p ON (p.ID = tr.object_id AND p.post_type = '".$posttype."' AND p.post_status = 'publish') WHERE tr.term_taxonomy_id = tt.term_taxonomy_id) WHERE tt.taxonomy = '".$taxonomy->name."' "; $wpdb->query($sql); } } 

Вам также может потребоваться добавить следующее в массив arguments_taxonomy register_taxonomy() :

 'update_count_callback' => '_update_post_term_count' 

Обратите внимание, что они полностью непроверены.

(См. Также: этот связанный вопрос WPSE )

Вы пытались добавить к запрашиваемому объекту, используя post_status?

например

 $SQL = "SELECT $wpdb->term_taxonomy.count FROM $wpdb->terms, $wpdb->term_taxonomy WHERE $wpdb->terms.term_id=$wpdb->term_taxonomy.term_id AND $wpdb->term_taxonomy.term_id=$input AND post_status = 'publish'"; return $wpdb->get_var($SQL);