下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。内存溢出小编现在分享给大家,也给大家做个参考。
wordpress 中对于文章有一个密码访问的功能,后台发布文章时填写密码即可设置。在 wordpress 中 AJAX 的应用越来越多,要做到密码文章查看无刷新应用,请看下面的代码:
add_action('wp_AJAX_do_post_password','do_x_post_password_cb');
add_action('wp_AJAX_nopriv_do_post_password','do_x_post_password_cb');
function do_x_post_password_cb() {
require_once( ABSPATH . 'wp-includes/class-PHPass.PHP' );
$wp_hasher = new PasswordHash(8,true);
// 10 天
setcookie( 'wp-postpass_' . cookieHASH,$wp_hasher->HashPassword( stripslashes( $_POST['pass'] ) ),time() + 864000,cookiePATH );
$_cookie['wp-postpass_' . cookieHASH] = $wp_hasher->HashPassword( stripslashes( $_POST['pass'] ) );
$q = new WP_query( "p={$_POST['pID']}" );
if ( $q->have_posts() ) : while( $q->have_posts() ) : $q->the_post();
$error = false;
if ( post_password_required() ) {
$error = true;
}
ob_start();
echo '<a href="'; the_permalink(); echo '">';
the_Title();
echo '</a>';
$Title = ob_get_clean();
@ob_end_flush();
ob_start();
the_content();
$content = ob_get_clean();
@ob_end_flush();
enDWhile; endif;
wp_reset_postdata();
$return = array( 'Title' => $Title,'content' => $content,'error' => '' );
if ($error)
$return['error'] = '密码不正确';
dIE( Json_encode( $return ) );
}
实现功能所必须的 PHP,加载到你的 functions.PHP 中。这里设置了 10 天的 cookie,输入正确密码后 10 天内不需要再次输入,可根据你自己的需要更改。
jquery(document).ready( function($) {
$('.post-password-required').on( 'submit','form[action$="postpass"]',function( ev ) {
ev.preventDefault();
var ID = $(this).find('label').attr('for').replace('pwBox-',''),
AJAXurl = barley.AJAXurl,
loading = '';
$(this).find('input[type="submit"]').CSS({
'background-image': 'url('+loading+')',
'background-position': '92% 50%',
'background-repeat': 'no-repeat',
'padding-right': '25px'
}).attr('Disabled','Disabled');
$.post( AJAXurl,{
action: 'do_post_password',
pass: $(this).find('input[name="post_password"]').val(),
pID: ID
},function( response ) {
if ( response.error != '' ) {
response.content = '<p background:#fcc;padding:10px;">'+ response.error+'</p>' + response.content;
} else {
$('#post-'+ID).find('.postTitle').HTML( response.Title );
}
$('#post-'+ID).find('.postcontent').HTML( response.content );
},'Json' );
});
});
以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的WordPress文章密码保护Ajax设置全部内容,希望文章能够帮你解决WordPress文章密码保护Ajax设置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)