#php
Вопрос:
Поэтому я хотел получить некоторый вклад от сообщества и посмотреть, как я смогу это сделать, и если я просто переосмысливаю это.
Итак, у меня есть этот небольшой фрагмент:
if (get_field('featured_posts')) {
$acf_post_ids = get_field('featured_posts', false, false);
$acf_query = get_posts([
'post_type' => ['any'],
'fields' => 'ids',
'post__in' => $acf_post_ids,
'orderby' => 'post__in',
'posts_per_page' => -1,
]);
$args['post__not_in'] = $acf_post_ids;
}
$wp_query = new WP_Query($args);
$main_ids = array_unique(array_merge($acf_query, $wp_query->posts));
Как бы это было правильно сделать:
- Если нет
get_field('featured_posts')
, установите$main_ids
переменную как просто$wp_query->posts
- В противном случае, если
get_field('featured_posts')
установлен$main_ids
array_unique(array_merge($acf_query, $wp_query->posts));
вызов.
Я не хотел вызывать еще if get_field('featured_posts')
одну проверку после запроса WP_, если у меня ее нет — Вся помощь будет оценена!
Комментарии:
1. Является ли значение
array_unique($wp_query->posts)
таким же, как$wp_query->posts
и ? Если да, то вы можете инициализировать$acf_query
как пустой массив передif
и оставить остальную часть кода нетронутой. Таким образом, вы всегда будете выполнять слияние с пустым массивом, но нет необходимости во второмif
операторе.2. @naszy, это как раз тот ответ, который я искал, спасибо за объяснение! Я просто переосмыслил это, но это самое простое и эффективное.