Я использую WP_Query для получения сообщений из пользовательского типа сообщения, чтобы использовать результат в метабоксе. Все отлично работает с моим запросом. Но после этого запроса я не могу получить другие мета значения из базы данных.
Это моя вспомогательная функция, чтобы получить пользовательское значение поля:
function my_page_get_custom_field($value) {
global $post;
$custom_field = get_post_meta($post->ID, $value, true);
if (!empty($custom_field))
return is_array($custom_field) ? stripslashes_deep($custom_field) : stripslashes(wp_kses_decode_entities($custom_field));
return false;
}
Вот мой запрос:
$sliderArgs = array(
'posts_per_page' => -1,
'post_type' => 'slider',
);
$slider = new WP_Query($sliderArgs);
if ($slider->have_posts()) {
?>
<select name="slider" id="slider">
$selectedSlide = my_page_get_custom_field('slider');
while($slider->have_posts()){
$slider->the_post();
$slideID = get_the_ID();
?><option value="<?php echo $slideID; ?>" <?php selected($selectedSlide, $slideID, true); ?>><?php the_title(); ?></option><?php
}
wp_reset_postdata(); ?>
</select>
}
И это мой другой настраиваемое поле, которое возвращает пустой (есть значение в базе данных и когда я пытаюсь изменить его, он отлично работает, но не отображается в исходном значении в admin):
<input type="text" name="meta_title" id="meta_title" value="<?php echo my_page_get_custom_field('meta_title'); ?>">
Я считаю, это ваша проблема: 'posts_per_page' => -1. Можете ли вы попробовать «posts_per_page» => 1 вместо этого? –
@LajosArpad К сожалению, для всех запросов. :) –