【发布时间】:2015-10-09 02:04:44
【问题描述】:
我正在使用带有自定义帖子类型 UI 插件和 ACF 插件的 wordpress。 尝试通过自定义自定义分类法构建具有多个自定义帖子类型提要的“单一”模板。使用此代码,通过一些变化来找出我做错了什么。
连续两段这样的代码
<?php if( get_field('collectiona') ):
$argsc = array(
'post_type' => 'products',
'product-collections' => get_field('collectiona'),
);
$prods2 = new WP_Query( $argsc );
if( $prods2->have_posts() ) {
while( $prods2->have_posts() ) {
$prods2->the_post();
?>
Whatever post code
<?php
}
}
else {
echo '';
}
?>
<?php endif; ?>
collectiona 是一个分类字段。使用上面显示的这段代码,它只显示了所有“产品”帖子。我也尝试过使用带有分类 slug 的文本字段。如果我没有使用第一个 if 语句 (<?php if( get_field(‘collectiona’) ): ?>),并且如果该语句存在,那么它显示第一个 feed 非常好 - 会发生同样的事情。显示所有“产品”。然而,即使第一个 feed 显示良好,第二个 feed 仍然显示所有“产品”。不管分类学蛞蝓怎么说。
我正在尝试以这种方式构建它,管理员可以选择下拉分类法。带有分类 slug 的文本字段只是一个示例。 p.s. 我使用术语对象 完整的模板代码在这里 jsfiddle.net/pudfbxhv 。我知道 jsfiddle 对 wp 模板没用,但那是一段相当大的代码
编辑
这里是更新的代码
<?php
$taxterms = get_field("collectiona"); ?>
<?php
$args = array(
'post_type' => 'products',
'tax_query' => array(
array(
'taxonomy' => 'product-collections',
'field' => 'id',
'terms' => $taxterm->term_id
)
)
);
$myquery = new WP_Query( $args );
if($myquery->have_posts()) : ?>
<ul>
<?php while ( $myquery->have_posts() ) : $myquery->the_post(); ?>
<li> <a href="<?php the_permalink(); ?>"><img src="<?php the_field('prod_featured_image'); ?>" onmouseover="this.src='<?php the_field('prod_hover_featured_image'); ?>'" onmouseout="this.src='<?php the_field('prod_featured_image'); ?>'" /></a>
<h2><?php the_field('prod_subtitle'); ?></h2>
<p>$<?php the_field('prod_price'); ?></p>
</li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php wp_reset_query(); ?>
【问题讨论】:
-
var_dump( get_field( 'collectiona' ) );的值是多少 -
bool(false) ,但在帖子编辑器中选择了值
-
那么您不是在单个页面上使用此功能,而是在脱离上下文使用它,这就是您没有获得任何价值的原因。或者您在单个模板的某处使用
query_posts,这将传递错误信息 -
模板中没有query_posts。并且不确定我是否关注单页。它在一个模板中用于单个自定义帖子。顺便说一句,这是它的完整 php 模板jsfiddle.net/pudfbxhv
-
请在您的问题中添加您的代码。你的小提琴没用,因为它在 Wordpress 上不起作用。我说的是你的单个帖子页面,
single.php或single-{$post_type}.php
标签: php wordpress custom-post-type advanced-custom-fields