无法解析 acf 字段中的简码(wordpress)

Posted

技术标签:

【中文标题】无法解析 acf 字段中的简码(wordpress)【英文标题】:Can't parse shortcode inside an acf field (wordpress) 【发布时间】:2021-09-27 17:13:04 【问题描述】:

我需要解析一个短代码 [ajaxdomainchecker]。 我采取了如下措施,但它不解析简码,只显示简码文本。 (我尝试了 acf 字段中的简码,它会解析简码。 $myvalue = get_field("field_60f5d9a277654"); echo do_shortcode($myvalue); 问题:它不直接解析 acf 字段中的短代码。 解析后的代码显示 php 代码所在的位置。) 请告诉我如何解析短代码?

    在所见即所得编辑器字段中添加了一个短代码 [ajaxdomainchecker]:
2.在单个帖子页面中添加以下代码,但显示短代码文本:
$post = get_post();
echo do_shortcode(get_post_meta($post->ID, 'testsc', $single = true));
3.在functions.php中添加了以下代码,但显示了一个短代码文本:
function my_acf_format_value( $value, $post_id, $field ) 
    return do_shortcode( $value );

add_filter('acf/format_value/key=field_90f5c9a536352', 'my_acf_format_value', 10, 3);

谢谢。

【问题讨论】:

您是否在常规文件中尝试过echo do_shortcode('[ajaxdomainchecker]')?像front-page.php,可能是这个简码甚至不存在,这就是它返回简码文本的原因 您好:感谢您的评论。我在 acf 字段中尝试了它并加载了简码。它只是没有加载到 acf 字段中...... 你的 textarea 是如何设置的?对于每个新行,您很可能将其设置为 pbr,而是尝试将其设置为 no format 或使用纯文本字段 嗨 Buttered:哦.. 我查看了 acf 字段,但找不到 fromat 函数。我应该将标签设置为仅文本,那么它将没有格式?请告诉我如何设置? textarea 的格式位于new lines,如果需要,我可以添加图像。如果仍然找不到,请尝试将 textarea 字段替换为 text 【参考方案1】:
    所见即所得编辑器是 ACF 字段的错误选择,请将其改为文本字段。 ACF自带get_field(),为什么还要使用get_post_meta()

试试:

$my_shortcode = get_field('testsc');
if ($my_shortcode)   
  $my_shortcode_content = do_shortcode($my_shortcode);
  if ($my_shortcode_content) 
    echo $my_shortcode_content);
   else 
    echo 'Shortcode found, but is empty';
  
 else 
  echo 'Unavailable';

如果需要,您可以将帖子 ID 作为第二个参数添加到 get_field(): https://www.advancedcustomfields.com/resources/get_field/

【讨论】:

您好 Hillel:感谢您的帮助。请让我知道我必须在哪里添加代码?在functions.php中?还是在单个帖子页面中? 我在一个帖子页面中添加了您的代码,但该页面没有显示任何内容...我尝试了 $myvalue = get_field( "field_60f5d9a279544" ); echo do_shortcode($myvalue);它加载简码,但问题是它不解析文本字段内的代码。它显示了我在其中放置 php 代码的简码......我需要解析 acf 字段内的简码...... 对于您的第一个问题,在单个帖子页面的 TEMPLATE 文件中(例如您的主题目录中的 single.php)。至于第二条评论,不要使用 get_field() 的字段 id,使用 field_name。 (我建议你去 ACF 网站,那里有很棒的文档,还有你可以使用的代码示例) 您好 Hillel:感谢您的评论。我在我的单个帖子模板中尝试过,但整个页面什么都没有显示。我阅读了 ACF 的 cmets,它说所见即所得只能解析短代码。所以我也试过了,但它仍然无法解析......还是谢谢你:)

以上是关于无法解析 acf 字段中的简码(wordpress)的主要内容,如果未能解决你的问题,请参考以下文章

将 ACF 字段传递给简码

为 Slick Slider 和 ACF 创建简码

从 WooCommerce 购物车中的产品中获取 ACF 图像字段的数据

Gatsby Wordpress ACF 图像字段返回“null”

php 将ACF自定义字段保存为Wordpress中的帖子标题

Wordpress ACF 字段如何从自定义帖子类型中获取选项