使用unctions.php为ACF中的标题分配ID

时间:2019-02-19 作者:sharkmountain

我正在为Wordpress网站上的每个标题分配ID。对于我没有在函数中使用ACF和以下代码段的页面,它工作得很好。php

function auto_id_headings( $content ) {

  $content = preg_replace_callback( \'/(\\<h[1-6](.*?))\\>(.*)(<\\/h[1-6]>)/i\', function( $matches ) {
    if ( ! stripos( $matches[0], \'id=\' ) ) :
      $matches[0] = $matches[1] . $matches[2] . \' id="\' . sanitize_title( $matches[3] ) . \'">\' . $matches[3] . $matches[4];
    endif;
    return $matches[0];
  }, $content );

    return $content;

}
add_filter( \'the_content\', \'auto_id_headings\' );
然而,这不会在ACF中找到标题,所以我提出了以下解决方案,我还将其添加到了函数中。php

function auto_id_headings_acf( $value, $post_id, $field ) {

  $content = preg_replace_callback( \'/(\\<h[1-6](.*?))\\>(.*)(<\\/h[1-6]>)/i\', function( $matches ) {
    if ( ! stripos( $matches[0], \'id=\' ) ) :
      $matches[0] = $matches[1] . $matches[2] . \' id="\' . sanitize_title( $matches[3] ) . \'">\' . $matches[3] . $matches[4];
    endif;
    return $matches[0];
  }, $value );

    return $value;

}
add_filter( \'acf/format_value/type=wysiwyg\', \'auto_id_headings_acf\', 10, 3);
但它不起作用:/

你知道我能做些什么吗?非常感谢您的帮助!

1 个回复
最合适的回答,由SO网友:Peter HvD 整理而成

如何在站点代码中打印ACF字段的内容?

假设您有自我编码的主题文件,而不是使用the_field() 要打印字段内容,应回显get_field() 通过\'the_content\' 滤器

例如:echo apply_filters( \'the_content\', get_field( \'my_field_name\' ) );

它将应用第一个代码片段中的修改。

相关推荐

初学者问题:通过管理Web界面访问Functions.php以导入自定义帖子类型?

是否可以访问这些功能。php文件仅仅使用管理web界面?我正在尝试访问以前创建的(手动编码的)自定义帖子类型,我不得不跳过很多障碍,因为我无法访问函数中的代码。php文件。我已经浏览了很多帮助页面,但建议的步骤似乎总是涉及到函数。php文件(我无法访问)或使用插件中的导入/导出工具,该插件首先创建了自定义帖子类型(据我所知,没有使用任何插件)。这似乎是一个非常基本的问题,但我一辈子都想不出来。任何帮助都将不胜感激!