我卡住了。我正在从approve post功能重定向到建立密码的链接。这是可行的,但不需要用户。也就是说,打开重置密码页面,但我看到的错误是没有指定用户。
我是否调用了错误的变量?提前谢谢。
add_action(\'init\', \'approve_post\', 10, 2 );
add_action(\'edit_user_created_user\', \'approve_post\', 10, 2 );
function approve_post($user, $notify) {
if ( isset($_GET[\'approve\']) && isset($_GET[\'email\']) ) {
// have we all variable needed?
if ( empty($_GET[\'approve\']) || ! filter_var($_GET[\'email\'], FILTER_VALIDATE_EMAIL) ) return;
// get post
$post = get_post($_GET[\'approve\']);
// this post has an author?
if ( ! isset($post->post_author) ) return;
// is the post already published?
if ( $post->post_status == \'publish\' ) {
wp_redirect("" . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), \'login\') . "");
exit();
} elseif ( $post->post_status != \'pending\' ) { // was the post deleted by admin?
return;
}
// get the author
$author = new WP_User($post->post_author);
// check author variable
if ( ! isset($author->user_email) ) return;
// verify email
if ( $_GET[\'email\'] != $author->user_email ) return;
// verify key
$key = get_post_meta( $post->ID, \'_approve_key\', true);
if ( $key != md5( $author->user_email . $post->ID ) ) return;
// ok, update status
$post_data = array(\'ID\' => $post->ID, \'post_status\' => \'publish\');
$update = wp_update_post($post_data);
// update failed...
if ( ! $update ) return;
// delete verify key
delete_post_meta($post->ID, \'_approve_key\');
// work finished, view the post
wp_redirect("" . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), \'login\') . "");
exit();
} return $notify;
}