2016-03-24 55 views
1

我想在产品页面上显示自定义字段。在产品中显示自定义字段(wordpress)

我创建了字段(高级自定义字段)并添加了一个规则以显示在帖子的选定类别中。它的工作原理是,我在那里放置了一个简单的文本并显示在产品页面中。在编辑器中我编辑模板并粘贴代码:

<?php the_field('my_info'); ?> 

不幸的是没有出现。

我也尝试这样的事:

<?php 
query_posts('cat=195&posts_per_page=1'); 
while (have_posts()) : the_post(); ?> 

<?php if(get_field('my_info')): ?> 

<?php the_field('my_info'); ?> 

<?php endif; ?> 

<?php endwhile; 
?> 

这个代码字段显示之后,但与加载其他页面的部分问题。

我做错了什么?

+1

原因是[query_posts](https://codex.wordpress.org/Function_Reference/query_posts)改变了主循环。建议您创建[WP_Query]的新实例(https://codex.wordpress.org/Class_Reference/WP_Query)或使用[get_posts()](https://codex.wordpress.org/Function_Reference/get_posts) 。或者你可以在完成之后调用'wp_reset_query();'(在'endwhile'之后),(来回改变主循环被认为是不好的风格,但是如果你匆忙。) – ippi

+0

@ippi确定它适用于wp_reset_query();但我如何使用WP_Query来做到这一点? – Pat

回答

1

由于使用了query_posts(),所以您必须在endwhile()之后放置wp_reset_query();。否则使用WP_Query。

<?php 

$query=WP_Query('cat=195&posts_per_page=1'); 
while ($query->have_posts()) : $query->the_post(); ?> 

<?php if(get_field('my_info')): ?> 

<?php the_field('my_info'); ?> 

<?php endif; ?> 

<?php endwhile; ?> 
相关问题