WordPress文章密码保护Ajax设置

WordPress文章密码保护Ajax设置,第1张

概述WordPress中对于文章有一个密码访问的功能,后台发布文章时填写密码即可设置。在Wordpress中Ajax的应用越来越多,要做到密码文章查看无刷新应用,请看下面

下面是内存溢出 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设置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/1008343.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存