#wordpress #loops #while-loop
#wordpress #циклы #цикл while
Вопрос:
У меня есть пользовательское поле в моих сообщениях, чтобы администратор мог ввести список конкретных идентификаторов сообщений, которые они хотят включить в раздел связанного контента на боковой панели. Я пытаюсь вставить переменную в мой wp_query_object, но она запрашивает только первый элемент.
Когда я повторяю переменную $ related_vids, она отображает идентификаторы, которые я ввел в пользовательское поле: 45,14,10.
Любая помощь в том, что я делаю неправильно, была бы потрясающей. Я чувствую, что я близок, но я уперся в стену.
<?php $related_vids = get_post_meta($post->ID, '_simple_fields_fieldGroupID_3_fieldID_2_numInSet_0', true);
$the_query = new WP_Query( array( 'post__in' => array( $related_vids ) ) );
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
<?php endwhile; wp_reset_postdata(); ?>
Ответ №1:
Проблема в том, что array( $related_vids )
фактически создается массив, содержащий 1 элемент: ["45,14,10"]
а не массив, содержащий 3 элемента: [45, 14, 10]
Что вам нужно, так это explode( ', ', $related_vids )
Комментарии:
1. Большое вам за это спасибо. Мне пришлось немного изменить его, чтобы он работал правильно, но это привело меня в правильном направлении. Я понял, что с помощью функции explode мне также нужно было включить разделитель в дополнение к строке. Мне также пришлось использовать пробелы между идентификаторами моих сообщений, чтобы было что взрывать. В итоге я использовал: explode(» «,$related_vids)
2. Рад, что вы это поняли. Я отредактировал свой ответ, чтобы включить дополнительный параметр в
explode
вызов.