【问题标题】:Advanced Custom Fields after the main content主要内容之后的高级自定义字段
【发布时间】:2014-05-09 00:54:28
【问题描述】:

我正在使用 ACF 选择字段来使页面管理员能够选择要在页面内容下显示的帖子类别。例如,如果他在 ACF 选择字段中选择“电视”,则该类别中的所有帖子都将显示在页面内容之后。这是页面底部(主要内容之后)的代码,来自页面模板:

<h2>Learn more about <?php the_field('main_page'); ?></h2>
<ul>

<?php 
$main_page=get_field('main_page');

$related_systems = new WP_Query( 'category_name='.$main_page );
while( $related_systems->have_posts() ) : $related_systems->the_post();

if($post->post_type == 'post'):

?>
<li><a href="#"><?php the_title();?></a></li>
<?php 
endif;
endwhile; ?>
</ul>

这是 ACF 设置截图

在具有主四页模板的所有四个页面中,选择字段在管理端显示良好,但 get_field('main_page')the_field('main_page') 最终都为空白(我用 echo 测试了 get_field 并没有显示向上)。如何获取页面模板中的字段值?

我正在使用 WordPress 3.8.1 和 ACF 版本 4.3.5

【问题讨论】:

  • 可能是 Wordpress 3.8.1 的插件损坏了。在我在它的页面上看到这个插件的兼容性之后,我会告诉这个。对于其他一些人来说,它已经坏了。所以请检查这方面。
  • 谢谢,我不知道如何检查,我没有收到任何错误,并且插件页面说它可以工作wordpress.org/plugins/advanced-custom-fields 我希望它与我的代码有关,但我没有注意到跨度>
  • 您能否检查您的数据库,在wp_postmeta 表中,如果main_page 元键实际上已保存?

标签: php wordpress select advanced-custom-fields


【解决方案1】:

在主要内容里面,添加$page_id = get_the_ID();

在自定义循环中,调用字段:

the_field( 'main_page', $page_id );

get_field( 'main_page', $page_id );

如果在循环中使用这些函数,则无需 ID 即可工作,否则我们需要指定我们请求的帖子。

另外,您可以在调用 WP_Query 时过滤帖子类型:

WP_Query ( 'post_type=post&category_name=' . $main_page );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-24
    • 2021-06-04
    • 2014-10-18
    • 1970-01-01
    • 2017-12-16
    • 2015-07-07
    • 2014-03-11
    • 1970-01-01
    相关资源
    最近更新 更多