这是一个愚蠢的问题,但我找不到合适的方式问谷歌。所以,如果这是一个重复的问题,很抱歉。
我提供了一个带有复选框的自定义字段,用户可以检查是否希望此特定帖子进入主页。因此,在我的主页上,我呼吁所有已激活选中的帖子。
我正在为自定义帖子类型CV创建自定义字段:
function add_custom_post_meta_box() {
add_meta_box(
\'custom_post_meta_box\', // $id
\'Campos Personalizados\', // $title
\'show_custom_post_meta_box\', // $callback
\'cv\', // $screen
\'normal\', // $context
\'high\' // $priority
);
}
add_action( \'add_meta_boxes\', \'add_custom_post_meta_box\' );
但在这个自定义post meta框中,我有多个字段,如标签和复选框:function show_custom_post_meta_box() {
global $post;
$meta = get_post_meta( $post->ID, \'your_fields\', true ); ?>
<p>
<label for="your_fields[text]">Especialidad</label>
<br>
<input type="text" name="your_fields[text]" id="your_fields[text]" class="regular-text" value="
<?php if (is_array($meta) && isset($meta[\'text\'])){ echo $meta[\'text\'];} ?>">
</p>
<p>
<label for="your_fields[checkbox]">Mostrar en Home
<input type="checkbox" name="your_fields[checkbox]" value="checkbox"
<?php
if (is_array($meta) && isset($meta[\'checkbox\'])){
if ( $meta[\'checkbox\'] === \'checkbox\' ) echo \'checked\';
}
?>>
</label>
</p>
好的,其余的代码保存了自定义字段,并且工作得很好。我的问题是,当我尝试调用它时:$posts = get_posts(array(
\'posts_per_page\' => -1,
\'post_type\' => \'cv\'
// \'meta_key\' => \'your_fields[checkbox]\', //This is wrong!!
// \'meta_value\' => \'checkbox\'
));
当我尝试拨打post信息时:<?php
foreach( $posts as $post ):
setup_postdata( $post );
?>
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<p>
<?php
$meta = get_post_meta( $post->ID, \'your_fields\', true );
if (isset($meta[\'checkbox\'])){
echo $meta[\'checkbox\'];
}
?>
</p>
<?php endforeach; ?>
所以,我的问题是:如何进行查询,只给我定制帖子类型,并激活选中。