页面模板中的高级自定义字段
问题描述:
我最近一直在使用Wordpress中的高级自定义字段进行相当多的工作,并且在使用邮件时发现它们非常有用,但在使用页面时似乎无法获得相同的结果。页面模板中的高级自定义字段
我目前有一个页面,使用循环来拉动类别为'news'的所有帖子。循环为每篇新闻文章创建一个结构,并将它们列出到页面的左边的分页页面中。在页面的右侧,我有一个部分需要显示附加的ACF发布对象(在这种情况下,单个自定义发布类型的“Staff”,在Pages编辑部分中分配)。
所以在左边有帖子的循环,右边我需要一个Post对象来显示。唯一的问题是,所有获得这个职位的对象数据的常用技术似乎并不奏效:
<?php
$post_object = get_field('attached_story');
print_r($post_object);
?>
这将返回什么。我把它放在循环内部/循环之外是无济于事的(我想这就是为什么它不工作,因为它需要在循环中)。显示帖子循环如下所示:
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array('post_type' => 'news', 'showposts' => '4', 'paged' => $paged);
$the_query = new WP_Query($args);
...
if(have_posts()) : while($the_query->have_posts()) : $the_query->the_post()
?>
我的问题是 - 是否有使用中的页面模板对象后一种特殊的方法?是否有一个不同的循环需要实例化,以循环访问页面自定义字段而不是帖子?最后是否有一种方法可以查看当前页面数组的全部内容以及所有自定义字段?
答
为防万一将来有人遇到这个问题,解决方法是使用query_posts()方法来设置循环而不是'新的WP_Query'类调用。我的循环调用现在看起来是这样的:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts(array('post_type' => 'news','showposts' => '4', 'paged' => $paged));
这是通过附加的故事拉现在使用下面的代码:
<?php
$post_object = get_field('attached_story');
if($post_object):
$post = $post_object;
setup_postdata($post); ?>
<?php $short_desc = get_field('short_description'); ?>
All over operations...
<?php wp_reset_postdata();?>
<?php endif; ?>
答
您可以使用下面的代码的循环中:
<?php $values = get_post_custom_values("your custom field name");
if($values){?>
<?php echo $values[0]; ?>
<?php } ?>