有一个名为的页面模板post-plain-body
,用于打印所传递帖子的标题和正文。命名的页面AjaxLoader
使用此模板。例如,如果我将/ajaxloader
withid
作为$_POST['id']
值调用,则将显示该帖子的内容。
这是通过主页上的 jQuery 调用的。它实际上将帖子/页面的内容加载到特定的上下文中。
我加载的一个页面包含一个Contact Form 7
表单。表单已显示,但当我提交它时,它会转到 a/ajaxloader/#wpcf7-f2-p34-o1
而不是使用 Ajax 来验证表单。
这是页面模板。
<?php
/*
Template Name: Ajax Loader
*/
// Load contact form 7 scripts
if ( function_exists( 'wpcf7_enqueue_scripts' ) ) {
wpcf7_enqueue_scripts();
wpcf7_enqueue_styles();
}
// Gets the content only from a post. Used in ajax loading
if(isset($_POST['id'])):
$post = get_post($_POST['id']);
if ($post) : setup_postdata($post);
?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
</div><?php
endif;
else:?>
<h2>Page not found</h2><?php
endif;
?>
加载内容的jQuery如下
function load_page(pid) {
$("#page_preview").load("ajaxloader/", {id:pid},function(){
$('#page_preview').fadeIn(300);
$('#page_loading').hide();
});
}
编辑
<form>
未按应有的方式附加到 Contact Form 7 脚本。我在firebug中使用javascript调试发现了这一点。通常,它应该有两个附加到事件的处理click
程序submit
。任何建议为什么它没有附加?