我对get_field()有问题。此函数不会返回带有先前创建的字段的最后一个插入值。如果我创建一个新字段,则get_field()不返回任何值。所有值都正确存储在数据库中。可能是什么问题呢? 我有ACF 5.8.0和Wordpress 5.2。
编辑
<?php /* Template Name: Chi Siamo */ ?>
<?php get_header(); ?>
<?php $address_map = get_field('indirizzo_mappa'); ?>
<div id="aboutUs" class="container">
<?php while ( have_posts() ) : the_post(); ?>
<div class="title">
<?php the_title(); ?>
</div>
<div class="content">
<?php the_content(); ?>
</div>
<?php endwhile; ?>
</div>
<?php if ($address_map) : ?>
<h1 class="mapTitle"><?php echo __('WHERE WE ARE','noisegallery'); ?></h1>
<div id="map" data-address="<?php echo $address_map; ?>"></div>
<?php endif;?>
<div class="firma">Designed from scratch by <b><a target="_blank" href="http://hellodude.it">DUDE</a></b></div>
<?php get_footer(); ?>
答案 0 :(得分:0)
get_field('yourFieldName')
需要回显,并且正如我在此处所做的那样,包括一个字段名称以从中获取值。
您还可以使用the_field('yourFieldName') without adding
echo`。请参见以下示例:
使用get_field()
:
<h2><?php echo get_field('yourFieldName'); ?></h2>
使用the_field()
:
<h2><?php the_field('yourFieldName'); ?></h2>
答案 1 :(得分:0)
原因之一(除了未清除缓存外)在field_xxx
表中的wp_posts
post_name行中重复。原因通常与主要插件更新期间的导出/导入字段或数据库更改有关(至少某些用户报告了这一点)。
发生这种情况时,您会从wp-admin和acf/save_post
钩子中的最新帖子中获取值,但是当您尝试get_field
时,您只会从同一{{ 1}}。
通过以下查询,您可以轻松检查情况是否如此:
field_xxx
如果结果中有任何值,则可能是它。您可以从最早的帖子开始安全删除重复的值。
当然,您应该在创建备份之前-将所有acf字段导出到json文件并创建转储od数据库。
如果它们很多,则可以使用此脚本,该脚本将保留每个重复字段的最高ID并删除所有重复项。
select post_name, count(ID) c, group_concat(ID)
from wp_posts
where post_type='acf-field'
group by post_name
having c>1;
从数据库中删除重复的行后,该问题将不复存在。 如果您使用的是W3缓存或任何其他缓存插件,则也应该清除它的缓存。