本站插件

本站插件

记录下使用的插件以及修改的地方,方便以后查看。

插件:

以上插件都可以在 WordPress 插件中心在线下载安装。

1、 WP-PostViews

找到 content-excerpt.phpcontent.php 文件,在该代码 <h5 class="entry-date"><?php nisarg_posted_on(); ?> 后面将如下代码添加进去,首页和文章页就可以显示阅读人数了。

<!-- 添加阅读计数 -->
<span> <i class="fa fa-eye"></i>
        <a class="entry-author-link" rel="author" href="<?php echo esc_url( get_author_posts_url( get_the_author_meta( 'ID' ), 
        get_the_author_meta( 'user_nicename' ) ) ); ?>">
        <span class="entry-author-name"><?php if(function_exists('the_views')) { the_views(); } ?>
</span></a></span>

2、添加文章回复后可见

functions.php 文件内容底部添加如下代码,如需要对博主直接显示内容,请添加博主邮箱地址。

function reply_to_read(atts,content=null) {   
        extract(shortcode_atts(array("notice" => '<p class="reply-to-read">温馨提示: 此处内容需要<a href="#respond" title="回复">回复</a>后才能查看.</p>'), atts));email = null;   
        user_ID = (int) wp_get_current_user()->ID;          if (user_ID > 0) {   
            email = get_userdata(user_ID)->user_email;   
            //对博主直接显示内容   
            admin_email = " "; //博主Email              if (email == admin_email) {                  returncontent;   
            }   
        } else if (isset(_COOKIE['comment_author_email_' . COOKIEHASH])) {email = str_replace('%40', '@', _COOKIE['comment_author_email_' . COOKIEHASH]);          } else {              returnnotice;   
        }   
        if (empty(email)) {              returnnotice;   
        }   
        global wpdb;post_id = get_the_ID();   
        query = "SELECT `comment_ID` FROM {wpdb->comments} WHERE `comment_post_ID`={post_id} and `comment_approved`='1' and `comment_author_email`='{email}' LIMIT 1";   
        if (wpdb->get_results(query)) {   
            return do_shortcode(content);          } else {              returnnotice;   
        }   
    }   

add_shortcode('reply', 'reply_to_read'); 

使用方法:【reply】评论可见的内容【/reply】将 【】 替换成 [] 即可。
效果:

温馨提示: 此处内容需要回复后才能查看.

3、添加上传文件自动重命名

functions.php 文件内容底部添加如下代码,由系统自动生成的一个32位的MD5加密文件名,由于默认生成的32位文件名有点长,所以使用 substr(md5($name), 0, 20) 截断将其设置为20位。

function rename_filename(filename) {info = pathinfo(filename);ext = empty(info['extension']) ? '' : '.' .info['extension'];
    name = basename(filename, ext);
    return substr(md5(name), 0, 20) . $ext;
}
add_filter('sanitize_file_name', 'rename_filename', 10);

4、禁止 WordPress 评论存储IP地址

默认 WordPress 会在后台存储评论者的IP地址,主要是用于反垃圾评论,比如 Akismet 之类的插件,会通过IP判断垃圾评论。但IP属于个人隐私,不存储评论者IP,可能会让用户对你的网站更有信任感。将如下代码添加到 functions.php 文件中即可。

// 禁止WordPress评论存储IP地址
add_filter( 'pre_comment_user_ip', 'zm_remove_comments_ip' );
function zm_remove_comments_ip( $comment_author_ip ) {
return '';
}

也可以添加如下代码将所有 IP 地址替换成 127.0.0.1

add_filter('pre_comment_user_ip', 'pre_comment_anon_ip');
function pre_comment_anon_ip() {    
REMOTE_ADDR = "127.0.0.1";
returnREMOTE_ADDR;
}

如果想删除之前已存储在数据库中的评论IP地址,可以将下面代码添加到 functions.php 文件后刷新页面即可,之前存储的评论者IP地址将从数据库中删除,该代码不需要保留在 functions.php 文件中,用后请移除。

global wpdb;
wpdb->query( "UPDATE wp_comments SET comment_author_IP=''" );

注意:操作数据库有风险,请提前做好备份,以防万一!

5、在首页添加继续阅读

functions.php 文件内容底部添加如下代码即可。

// 继续阅读
add_filter('the_excerpt','home_the_excerpt');

function home_the_excerpt(post_excerpt) {
    if(has_excerpt())
    {post_excerpt .= apply_filters( 'excerpt_more','');
        post_excerpt = str_replace('','',post_excerpt);
    }

    return $post_excerpt;
}

6、移除 WordPress 文章标题前的 私密、密码保护 提示文字

functions.php 文件内容底部添加如下代码即可。

//移除 WordPress 文章标题前的“私密/密码保护”提示文字
function remove_title_prefix($content) {
    return '%s';//这个不能省略
}
add_filter('private_title_format', 'remove_title_prefix');//私密
add_filter('protected_title_format', 'remove_title_prefix');//密码保护

7、修改作者的 url 避免暴露 WordPress 用户名

functions.php 文件内容底部添加如下代码即可。

// 修改作者的url避免暴露wordpress用户名
add_filter('author_link', 'author_link', 10, 2);
function author_link( link,author_id) {
    global wp_rewrite;author_id = (int) author_id;link = wp_rewrite->get_author_permastruct();
    if ( empty(link) ) {
        file = home_url( '/' );link = file . '?author=' .author_id;
    } else {
        link = str_replace('%author%',author_id, link);link = home_url( user_trailingslashit( link ) );
    }
    returnlink;
}
add_filter('request', 'author_link_request');
function author_link_request( query_vars ) {
    if ( array_key_exists( 'author_name',query_vars ) ) {
        global wpdb;author_id=query_vars['author_name'];
        if (author_id ) {
            query_vars['author'] =author_id;
            unset( query_vars['author_name'] );           }
    }
    returnquery_vars;
}

8、禁止订阅

functions.php 文件内容底部添加如下代码即可。

function wp_disable_feed() {
    wp_die( __('抱歉,本站不支持订阅,请返回<a href="'. get_bloginfo('url') .'">首页</a>') ); 
}
add_action('do_feed', 'wp_disable_feed', 1);
add_action('do_feed_rdf', 'wp_disable_feed', 1);
add_action('do_feed_rss', 'wp_disable_feed', 1);
add_action('do_feed_rss2', 'wp_disable_feed', 1);
add_action('do_feed_atom', 'wp_disable_feed', 1);

9、Two Factor 插件使用

该插件的作用就是提供二次验证(使得后台相对安全一点点)支持如下功能:

  • 给电子邮件发送随机验证码
  • 基于时间的一次性密码(TOTP)
  • FIDO U2F安全密钥 (Yubico Security key nfc
  • 生成备用验证码(一次性使用)

10、固定链接配置 Rewrite

把如下代码放入到 nginx.conf 配置文件的 server{} 里面即可。

location / {
    index index.html index.php;
    if (-f request_filename/index.html){
        rewrite (.*)1/index.html break;
    }
    if (-f request_filename/index.php){
        rewrite (.*)1/index.php;
    }
    if (!-f request_filename){
        rewrite (.*) /index.php;
    }
}

rewrite /wp-admin scheme://host$uri/ permanent;