WordPress 更改文章密碼保護後顯示的提示內容

WordPress 有一個密碼保護功能,你可以在文章和頁面的編輯界面看到設置選項:

password-protected-1_wpdaxue_com

設置瞭密碼後,你就可以在前臺看到如下提示內容:

password-protected_wpdaxue_com

本文的目的就是要修改這個提示內容,核心函數如下(添加到當前主題的 functions.php 即可):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
 * WordPress 更改文章密碼保護後顯示的提示內容
 * https://www.wpdaxue.com/change-password-protected-text.html
 */
function password_protected_change( $content ) {
    global $post;
    if ( ! empty( $post->post_password ) && stripslashes( $_COOKIE['wp-postpass_'.COOKIEHASH] ) != $post->post_password ) {
        $output = '
 
        <form action="' . get_option( 'siteurl' ) . '/wp-pass.php" method="post">
            '.__( "這是一篇受密碼保護的文章,您需要提供訪問密碼:" ).'
 
            <label for="post_password">密碼:</label>
            <input name="post_password" class="input" type="password" size="20" />
            <input type="submit" name="Submit" class="button" value="' . __( "提交" ) . '" />
 
        </form>
 
        ';
        return $output;
    } else {
        return $content;
    }
}
add_filter( 'the_content','password_protected_change' );

/**
* WordPress 更改文章密碼保護後顯示的提示內容
* https://www.wpdaxue.com/change-password-protected-text.html
*/
function password_protected_change( $content ) {
global $post;
if ( ! empty( $post->post_password ) && stripslashes( $_COOKIE[‘wp-postpass_’.COOKIEHASH] ) != $post->post_password ) {
$output = ‘ <form action="’ . get_option( ‘siteurl’ ) . ‘/wp-pass.php" method="post">
‘.__( "這是一篇受密碼保護的文章,您需要提供訪問密碼:" ).’ <label for="post_password">密碼:</label>
<input name="post_password" class="input" type="password" size="20" />
<input type="submit" name="Submit" class="button" value="’ . __( "提交" ) . ‘" /> </form> ‘;
return $output;
} else {
return $content;
}
}
add_filter( ‘the_content’,’password_protected_change’ );

代碼先判斷文章是否有密碼保護,並且當前訪問者的瀏覽器是否有輸入過正確密碼的 cookie 記錄,如果有密碼保護並且沒有cookie 記錄,就顯示密碼保護提示內容,否則顯示文章內容。

所以,如果你要修改提示內容,隻需要修改 $output 部分的內容即可,比如修改“這是一篇受密碼保護的文章,您需要提供訪問密碼:”等等。

代碼參考:http://code.tutsplus.com/tutorials/quick-tip-changing-the-password-protected-text-in-wordpress–cms-21042

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *