我有一个问题给你们所有人!
我有一个名为'candidato'的帖子类型,另一个名为'lista'的帖子类型和另一个名为'list1'的帖子类型。
每种帖子类型都有很多自定义字段。
在'candidato'中,主要字段是'n-cand',表示独特的位置。每个'candidato'都有自己的位置,因此'n-cand'值可以识别每个特定的'candidato'。
每个'candidato'由一个或多个'lista'支持(至少一个)。因此,在'lista'中,我创建了一个自定义字段(通过while循环),并根据已发布的'candidato'的数量动态更新下拉列表。所以,如果我有4个'candidato',当我创建一个新的'lista'时,我有4个选项我可以选择。每个选项都显示the_title()(即每个'candidato'的名称)并将'n-cand'值(即'candidato'的位置)指定为值。 我用这种方式:
<select name="sind-list">
<?php
query_posts( array(
'post_type' => 'candidato',
'orderby' => 'meta_value_num',
'meta_key' => 'n-cand',
'order' => 'ASC'
) );
if( have_posts() ) : while( have_posts() ) : the_post();
?>
<?php global $post; ?>
<?php $ncand = get_post_meta($post->ID, 'n-cand', true); ?>
<option value="<?php echo $ncand; ?>" <?php if ( isset ( $liste_stored_meta['sind-list'] ) ) selected( $liste_stored_meta['sind-list'][0], $ncand ); ?>><?php _e( the_title(), 'prfx-textdomain' )?></option>';
<?php endwhile; endif; wp_reset_query(); ?>
</select>
只有在我使用'global $ post'时才能正常工作。
我现在要做的是为'lista1'创建一个元框,其中我有一个按位置排序的'candidato'列表('n-cand'键),每个列表下都有'lista'列表'支持那''candidato'。这是一个循环内的循环。 我用了这段代码:
<?php
query_posts( array(
'post_type' => 'candidato',
'orderby' => 'meta_value_num',
'meta_key' => 'n-cand',
'order' => 'ASC'
));
if( have_posts() ) : while( have_posts() ) : the_post();
?>
<?php
global $post;
$ncand = get_post_meta($post->ID, 'n-cand', true);
?>
<?php
$postlist = new WP_Query( array(
'post_type' => 'lista',
'orderby' => 'meta_value_num',
'meta_key' => 'n-list',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'sind-list',
'value' => $ncand,
'compare' => '='
),
),
));
while( $postlist->have_posts() ) : $postlist->the_posts();
?>
// WRITE SOMETHING
<?php endwhile; wp_reset_query(); ?>
<?php endwhile; endif; wp_reset_query(); ?>
但这不起作用!!!
我收到此消息:
致命错误:在非对象上调用成员函数have_posts()
指的是上面代码的最后一行。 愿有人帮帮我吗? 真的,谢谢你!