我发现this answer on Stack Overflow, 回答这个确切的问题。
我稍微修改了一下,因为我使用了button
而不是anchor
:
jQuery( ".modal" ).on( "show.bs.modal", function ( e ) {
var target = jQuery( e.relatedTarget ).attr( "data-target" ).replace( "#", "" );
var modal_ids = [
"modal-request-estimate",
"modal-schedule-appointment",
"modal-rate-review"
];
if ( modal_ids.indexOf( target ) == - 1 ) {
return false;
}
jQuery( this ).find( ".modal-body" ).load( location.href + "?modal=" + target );
} );
If-then添加了一个PHP回调函数来运行
template_redirect
为了检查
$_GET[ \'modal\' ]
并在有效条件下输出适当的内容。
我的PHP回调如下所示:
add_action( \'template_redirect\', function () {
$modal_id = null;
if ( isset( $_GET[\'modal\'] ) ) {
$modal_id = filter_var( $_GET[\'modal\'], FILTER_SANITIZE_STRING );
}
if ( ! $modal_id ) {
return false;
}
echo render_form( $modal_id );
return true;
} );
Note: render_form();
是一个非常简单的函数,专门输出标准HTML输入表单。
Just to be clear: 我并不总是匿名编写回调函数。我这样做只是为了简单地问这个问题。
At this point: 单击按钮时,将弹出模式窗口,表单将在模式窗口的主体中呈现。但是,整个网站的模板也会输出到模式窗口中。
How do I get it to ONLY output the form into the modal\'s body, instead of the ENTIRE website\'s template?