2016-01-11 4 views
0

мои сообщения размещены в двух категориях. (Рекомендуемые Новости). iam пытается подсчитать посты в категории 'featured', и если его больше 5, я хочу, чтобы он удалял 6,7,8, ... только сохранить последние 5 .. пока что iam умеет считать их с помощью этого кодаПодсчет сообщений в категории и удалении автоматически из категории

$category = get_category(830); 
$count = $category->category_count; 

if($count > 5) { 
    // stuff 
} 

, но внутри оператора if, как получить предметы 6,7,8 ...?

Я просто хочу удалить категорию «признакам» с category_id 830 и сохранить другую категорию (новости), если она указана в ней.

Я сделал эту функцию, но я получаю ошибку 500, когда я ее использую. Вы можете мне помочь?

$my_query = new WP_Query('category_name=featured'); 
function countfeatures($my_query) { 
$featurecount = 0; 

    while ($my_query->have_posts()) : $my_query->the_post(); 
    $featurecount++; 
    if ($featurecount > 5){ 
    $pos = array_search('featured', $post_cats); 
    unset($post_cats[$pos]); 
    wp_set_post_terms ($post_id, $post_cats, 'category'); 
    //wp_set_post_terms ($slide->ID, $post_cats, 'category'); 
    //do stuff 
    } 
     endwhile; 

    } 
add_filter('pre_get_posts', 'countfeatures'); 
+0

использование 'limit' в запросе? –

+0

его функция .. Мне просто нужно удалить статью выше 5 из категории –

ответ

0

Использовать ограничение в запросе на 5 и порядка по первичному ключу по убыванию, так что вы получите пятерку последний альбом

+0

в моем коде .. как я могу уловить сообщение № 6? iam не удалось его уловить –

+0

print_r ($ category) и показать свой результат здесь –

-1

только OrderBy и параметр порядка должен быть добавлен, это поможет вам новейший 5 сообщений категории.

$args = array(
      'post_type' => 'post', 
      'post_status'=> 'publish', 
      'posts_per_page'=>5, 
      'order'=>'DESC', 
      'orderby'=>'ID', 
      'tax_query' => array(
       array(
        'taxonomy' => 'featured', 
        'field' => 'term_id', 
        'terms' => array(830), 
        'operator' => 'IN', 
       ), 
      ), 
     ); 
     $query = new WP_Query($args); 

// The Loop 
if ($the_query->have_posts()) { 
    echo '<ul>'; 
    while ($the_query->have_posts()) { 
     $the_query->the_post(); 
     echo '<li>' . get_the_title() . '</li>'; 
    } 
    echo '</ul>'; 
} else { 
    // no posts found 
} 
/* Restore original Post Data */ 
wp_reset_postdata(); 
+0

Спасибо, кажется, вы меня не понимаете, мой друг. iam умеет получать сообщения категории ... но я хочу удалить сообщение (6) из категории ... не показывать только 5 из категории. нравится, если вы считаете 1.2.3.4.5.6.7.8 6 + 7 + 8 необходимо удалить из категории (6 + 7 + 8) есть категории (признанные + новости) удалить их означает, что они должны иметь только (новости) как категория. –

+0

Ok понял глупо меня: P .. if ($ counter> 5) { wp_remove_object_terms ($ post_id, 'featured', 'taxonomy'); } –

+0

Остановить отправку нескольких ответов. Если вам нужно добавить/удалить/изменить что-то, вы можете внести изменения в свой исходный пост, внесите необходимые изменения –

Смежные вопросы