此问题可能是由于ajax载入之后缺少ACF的JavaScript和CSS文件引起的。在将acf_form通过ajax加载到页面时,需要确保在页面中正确地引入了ACF的js和css文件。这可以通过在需要加载acf_form的页面添加以下代码来解决问题:
在functions.php中添加以下代码:
/**
* Enqueue scripts and styles for ACF
*/
function custom_admin_enqueue_scripts() {
wp_enqueue_style( 'acf-styles', plugin_dir_url( __FILE__ ) . 'css/acf.css', array(), '1.0.0', 'all' );
wp_enqueue_script( 'acf-scripts', plugin_dir_url( __FILE__ ) . 'js/acf.js', array( 'jquery' ), '1.0.0', true );
}
add_action( 'admin_enqueue_scripts', 'custom_admin_enqueue_scripts' );
这将确保在页面中正确地引用了ACF文件,并可通过ajax加载后正确地加载acf_form。
要加载acf_form,您可以在需要它的页面上使用以下JavaScript代码:
jQuery(document).ready(function($) {
$('.load-acf-form').on('click', function(event) {
event.preventDefault();
var $this = $(this);
$.ajax({
url: $this.attr('href'),
dataType: 'HTML',
success: function(response) {
$('#acf-form-container').html(response);
},
error: function() {
alert('There was an error loading the form.');
}
});
});
});
然后,您可以将下面的HTML代码添加到任何页面上,以便在单击链接时,使用ajax动态加载acf_form:
Load ACF Form via AJAX
请注意,此代码是针对ACF Pro的。如果您使用的是ACF免费版,则需要相应更改脚本和样式表的名称。
希望这可以帮助您解决您的问题!