我正在为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);
但它不起作用:/
你知道我能做些什么吗?非常感谢您的帮助!
最合适的回答,由SO网友:Peter HvD 整理而成
如何在站点代码中打印ACF字段的内容?
假设您有自我编码的主题文件,而不是使用the_field()
要打印字段内容,应回显get_field()
通过\'the_content\'
滤器
例如:echo apply_filters( \'the_content\', get_field( \'my_field_name\' ) );
它将应用第一个代码片段中的修改。