WordPress Условный пост-цикл - PullRequest
1 голос
/ 13 марта 2019

У меня очень простая проблема, я хотел бы добавить условный оператор if для следующего массива. Я хотел бы ТОЛЬКО показывать вложения в виджете, если есть хотя бы 10 вложений, в противном случае я не хочу отображать виджет.

  $args = array(
        'post_type' => 'attachment',
        'post_mime_type' => 'image',
        'numberposts' => 10,
        'post_status' => 'published',
        'post_parent' => null,
        );
    $attachments = get_posts($args);

Как мне создать оператор if для определенного количества вложений, захваченных этим массивом? Например, "if ($ attachments> 10) {

Ответы [ 3 ]

1 голос
/ 13 марта 2019

Аргументы, которые вы передаете в get_posts, требуют 10 сообщений, поэтому вы никогда не получите больше, чем в ответе.

'numberposts' => 10,

Однако, если вы хотите, чтобы условие отображения было таким, чтобы оно получало ровно 10:

if (count($attachments) === 10) {
  // proceed
}
0 голосов
/ 13 марта 2019

Код, который вы получите, будет получать максимум 10 сообщений, 'numberposts' => 10,.Чтобы получить все сообщения, которые являются вложениями, вы можете использовать 'numberposts' => -1,.Ссылка https://developer.wordpress.org/reference/functions/get_posts/.

Затем вы можете проверить, есть ли хотя бы 10 вложений:

if (count($attachments) >= 10) { 
    // display widget        
}
0 голосов
/ 13 марта 2019

Это то, что вы после?

if (count($attachments) > 10) {
  // code here
}

get_posts () возвращает массив сообщений, так что вы можете просто посчитать количество элементов в массиве, который он возвращает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...