我正在尝试检索绑定到特定页面的所有高级自定义字段。这与迭代帖子不同,我熟悉以下内容:
$posts = get_posts(array(
'post_type' => 'post_name',
'meta_key' => 'color',
'meta_value' => 'red'
));
但是这种方法特定于帖子,不允许我按页面名称检索所有ACF。
我很欣赏有关如何实现这一目标的任何建议。
答案 0 :(得分:2)
我想到了这样的想法......
使用WP_Query你可以做这样的事情......
<?php
// WP_Query arguments
$args = array (
'pagename' => 'homepage',
);
// The Query
$query = new WP_Query( $args );
// The Loop
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
the_field( "field_name" );
}
} else {
// no posts found
}
// Restore original Post Data
wp_reset_postdata();
?>
代替&#39;主页&#39;在'pagename' => 'homepage'
中,您想要放置页面的页面。当然,代替the_field( "text_field" );
您要添加字段/内容。
您还可以按页面ID和其他一些参数进行查询。您可以在此处找到可以使用的所有其他参数: https://codex.wordpress.org/Class_Reference/WP_Query#Post_.26_Page_Parameters
更简单的方法,没有自定义循环,只是使用ACF的内置the_field()
函数,并添加$post->ID
参数作为第二个参数。
<?php the_field('field_name', 123);
这可能是要走的路,因为你只想显示一页的内容,因此不需要循环。
参考:http://www.advancedcustomfields.com/resources/how-to-get-values-from-another-post/
答案 1 :(得分:0)
您可以使用ACF的get_fields()
功能 -
<?php $fields = get_fields( $post->ID ); ?>
然后你可以遍历它们或者只是打印数组进行测试。