我正在使用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>
}
这是我的另一个返回空的自定义字段(数据库中有一个值,当我尝试更改它时效果很好,但在管理中输入值不显示):
<input type="text" name="meta_title" id="meta_title" value="<?php echo my_page_get_custom_field('meta_title'); ?>">
答案 0 :(得分:0)
好的,我解决了。
我使用get_posts而不是WP_Query。这对我帮助很大:https://core.trac.wordpress.org/ticket/18408#comment:5