[英]WordPress : Password Protected Page
我需要有關WordPress密碼保護頁面的幫助。
輸入密碼后,通常會將您重定向到您輸入的頁面,或者僅在輸入密碼后顯示內容。
我想要的是,輸入正確的密碼后,它會重定向到我網站的另一頁。 那怎么可能? 我將盡可能不使用任何插件。
以下是我的functions.php
代碼:
<?php
function my_password_form() {
global $post;
$label = 'pwbox-'.(empty($post->ID) ? rand() : $post->ID);
$output = '<form action="' . get_option('siteurl') . '/wp-pass.php" method="post">
<p><strong>'.__("Cakes").'</strong></p>
<p>' . __("This page is password-protected. Please input password below.") . '</p>
<center><label for="' . $label . '">' . __("Password:") . '<input name="post_password" id="' . $label . '" type="password" size="40" style="height:20px;"/></label><input type="image" src="images/btn_member02.png" name="Submit" value="' . esc_attr__("Submit") . '"/></center>
</form>
';
return $output;
}
add_filter('the_password_form', 'my_password_form');
?>
例如,當我在www.mysite.com/memberlogin
頁面上輸入正確的密碼時,應將我重定向到www.mysite.com/memberpage
。
我已經為您的問題編寫了以下代碼。 請檢查以下對您可能有用的代碼(將此代碼寫在您的functions.php中):-
<?php
add_action( 'login_form_postpass', 'redirectPasswordProtectedPage' );
function redirectPasswordProtectedPage()
{
if ( ! empty( $_POST['post_password'] ) ) {
/** @var wpdb $wpdb */
global $wpdb;
$query = $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_password = %s", trim($_POST['post_password']) );
$password_posts = $wpdb->get_row( $query );
if ( isset( $password_posts ) ) {
$post_id = $password_posts->ID;
wp_safe_redirect(get_permalink(25));
exit;
}
}
}
?>
我找到了一個線程,忘了復制鏈接,但這是代碼:
<?php
echo "<script type='text/javascript'>\nwindow.location = 'http://www.google.com'</script>";
?>
我將該代碼放在了受密碼保護的頁面中。 輸入密碼后,它會將我重定向到另一個頁面,即我想要的頁面。
您的表單操作應該是wp-login.php?action=postpass
,而不是wp-pass.php
來源: 使用密碼保護
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.