wordpress-shortcode,ob_start中断jQuery
我正试图在wordpress中制作一个wordpress-shortcode,ob_start中断jQuery,jquery,wordpress,Jquery,Wordpress,我正试图在wordpress中制作一个shortcode插件 <?php function upd_signup_form() { $key = get_query_var( 'upd' ); ob_start(); ?> <a href="#" class="signup-submit">Reserve Your Spot for Free</a> <div id="upd-m
shortcode
插件
<?php
function upd_signup_form() {
$key = get_query_var( 'upd' );
ob_start();
?>
<a href="#" class="signup-submit">Reserve Your Spot for Free</a>
<div id="upd-modal" style="display: none;">
<a href="#" id="upd-modal-close">CLOSE X</a>
<div id="upd-form">
<form name="registerform" id="registerform" action="<?php echo site_url().'/wp-login.php?action=register'; ?>" method="post">
<p>
<label for="user_login">Username<br>
<input type="text" name="user_login" id="user_login" class="input" value="" size="20"></label>
</p>
<p>
<label for="user_email">E-mail<br>
<input type="text" name="user_email" id="user_email" class="input" value="" size="25"></label>
</p>
<p>
<label for="first_name">First Name<br>
<input id="first_name" class="input" type="text" value="" name="first_name">
</label>
</p>
<p>
<label for="last_name">Last Name<br>
<input id="last_name" class="input" type="text" value="" name="last_name">
</label>
</p>
<p>
<label for="password">Password<br>
<input id="password" class="input" type="password" value="" name="password">
</label>
</p>
<p>
<label for="rpassword">Re-enter Password<br>
<input id="rpassword" class="input" type="password" value="" name="rpassword">
</label>
</p>
<p>
<label for="upd_terms">
<input id="upd_terms" class="checkbox" type="checkbox" value="true" name="upd_terms">
I accept these terms and conditions.</label>
</p>
<p>
<label for="upd_register">
<input id="upd_register" class="checkbox" type="checkbox" value="true" name="upd_register">
I would like to sign-up for the Synek Waitlist.
</label>
</p>
<?php
if( $key != '' ) :
$uargs = array(
'role' => 'subscriber',
'meta_key' => 'upd_key',
'meta_value' => $key
);
$ruser = get_users( $uargs );
if( is_array($ruser) ) :
$userx = $ruser['0'];
?>
<input type="hidden" id="upd_user_id" name="upd_user_id" value="<?php echo $userx->ID; ?>">
<input type="hidden" id="upd_user_key" name="upd_user_key" value="<?php echo $key; ?>">
<?php
endif;
endif;
?>
<br class="clear">
<input type="hidden" name="redirect_to" value="">
<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="Register"></p>
</form>
</div>
</div>
<script type="text/javascript">
jQuery('.signup-submit').on('click', function(){
jQuery('#upd-modal').fadeIn('400');
});
jQuery('#upd-modal-close').on('click', function(){
jQuery('#upd-modal').fadeOut('400');
});
</script>
<?php
$form = ob_get_clean();
return $form;
}
add_shortcode('upd-signup', 'upd_signup_form');
?>
我也有同样的问题。WordPress正在输出的html中添加p和br标记
我能够通过重组HTML来解决这个问题,这样就减少了空格和换行符。问题出人意料地特定于脚本标记。如果html的结构是这样的,它应该不会引起任何问题
<script type="text/javascript">
jQuery('.signup-submit').on('click', function(){
jQuery('#upd-modal').fadeIn('400');
});
jQuery('#upd-modal-close').on('click', function(){
jQuery('#upd-modal').fadeOut('400');
});
</script>
这是JS控制台错误吗?如果是,它指的是什么位置?检查页面的源代码(如在View source中,而不是Elements developer选项卡中)是否有错误事实上,它是JS控制台。我已经一遍又一遍地看了JS代码,里面什么都没有。我甚至重写了几次。这只是一个简单的模式叠加。@Phil:它不是未闭合的,只是偏移。arrant选项卡。我也尝试过按您在页脚中的要求添加脚本。当使用ob时仍然会中断。你能在我的第一个评论中回答其他问题吗?错误引用的位置(文件和行号)是什么?如果查看该文件的源代码(如呈现的HTML源代码),您会看到什么?
<script type="text/javascript">
jQuery('.signup-submit').on('click', function(){
jQuery('#upd-modal').fadeIn('400');
});
jQuery('#upd-modal-close').on('click', function(){
jQuery('#upd-modal').fadeOut('400');
});
</script>
$form = ob_get_clean();
return str_replace("\r\n", '', $form);