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

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

请告诉我如何解析短代码?

  1. 在所见即所得编辑器字段中添加了一个短代码 [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

标签: wordpress parsing advanced-custom-fields shortcode


【解决方案1】:
  1. 所见即所得编辑器是 ACF 字段的错误选择,请将其改为文本字段。
  2. 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,它说所见即所得只能解析短代码。所以我也试过了,但它仍然无法解析......还是谢谢你:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-21
  • 2022-01-16
  • 2016-04-18
  • 1970-01-01
  • 2019-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多