7折
减价出售
¥799
用户在浏览我们wordpress网页的时候,有些内容我们需要加密的,不是直接公开的,这时候可以给页面中设定密码访问,输入指定的密码才可以显示内容,这里介绍两种方式给wordpress文章创建密码,都不使用插件。
首先wordpress的文章添加密码是如下图所示:
function hx_add_password($where){
global $wpdb; //使用wordpress内置查询对象
return $where .= " AND {$wpdb->posts}.post_password != '' ";
}
function hx_out_password(){
if (!is_single() && !is_page() && !is_admin()){
add_filter( 'posts_where' ,'hx_add_password');
}
}
add_action('pre_get_posts','hx_out_password');
讲解一下上面的这段代码,第一段的函数是将更改wordpress主题的拼接sql查询语句,意思是查询password字段不为空的数据,第二段函数是将第一个函数作为钩子函数挂载在wordpress主题的查询拼接sql上,目的是只在wordpress的归档页和wordpress的列表页可以执行此查询,最后一句就是我们熟悉的pre_get_posts钩子,将上面的查询挂载一下,默认的posts查询便会被更改。
第二种方法:这个是在列表中正常显示,文章也正常显示,只是wordpress文章创建密码的部分不显示
function hx_action_post_password($atts, $content=null){
extract(shortcode_atts(array('key'=>null), $atts));
if (isset($_POST['hx_password'])){
if($_POST['hx_password']==$key){
return '
<div class="hx_password_body">'.$content.'</div>
';
}else{
return '
<script>
alert("输入的密码错误");
</script>
';
}
}
else{
return '
<form class="hx_enter_password" action="'.get_permalink().'" method="post">
<input type="password" name="hx_password" size="20" placeholder="please input password"/>
<input type="submit" value="submit" />
</form>
';
}
}
add_shortcode('hx_pwd_safe','hx_action_post_password');
function hx_tag_password() {
if (wp_script_is('quicktags')){
?>
<script type="text/javascript">
QTags.addButton( 'hx_pwd_safe', '密码保护', '【hx_pwd_safe key="输入密码"]','[/hx_pwd_safe】' );
</script>
<?php
}
}
add_action('admin_print_footer_scripts', 'hx_tag_password' );
这里设置后会在文章的展示页面中出现输入密码的选项框。输入正确后才会显示密码保护的内容,这里有两个地方需要注意,一个是wordpress自定义短代码,另外一个是钩子函数的使用。短代码在文章详情中添加如下:
[hx_pwd_safe key="保护密码"][/hx_pwd_safe]
把保护的内容放在短代码的中间即可,可以是获取的字段数据,也可以是普通的文本数据。
减价出售
减价出售
减价出售
减价出售
电话咨询
133-7205-6573
微信咨询