2012-03-20 2 views
0

Я пытаюсь встроить регистрацию wordpress на домашнюю страницу. Я уже создал пользовательскую страницу регистрации, проблема в том, что она вызывает информацию заголовка, и я получаю эту ошибку, когда я включаю ее в php include.Вставить wordpress Регистрация на домашнюю страницу

Предупреждение: Не удается изменить информацию в заголовке - заголовки уже отправлены

Есть ли способ, что я могу использовать мой код, но изменить его каким-то образом/работа с ним как-то, так что форма регистрации полностью внедренный/работает на странице используя ajax, но это работает. Я не брильянт Php поэтому, пожалуйста, простите если это глупый вопрос:

Текущий код регистра (работает в своей собственной странице, но не тогда, когда включены в шаблон страницы)

<?php 
require_once(ABSPATH . WPINC . '/registration.php'); 
global $wpdb, $user_ID; 
//Check whether the user is already logged in 
if (!$user_ID) { 

     if($_POST){ 
      //We shall SQL escape all inputs 
      $username = $wpdb->escape($_POST['username']); 
      if(empty($username)) { 
       echo "User name should not be empty."; 
       exit(); 
      } 
      $email = $wpdb->escape($_POST['email']); 
      if(!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/", $email)) { 
       echo "Please enter a valid email."; 
       exit(); 
      }  

       $random_password = wp_generate_password(12, false); 
       $status = wp_create_user($username, $random_password, $email); 
       if (is_wp_error($status)) 
        echo "Username already exists. Please try another one."; 
       else { 
        $from = get_option('admin_email'); 
        $headers = 'From: '.$from . "\r\n"; 
        $subject = "Registration successful"; 
        $msg = "Registration successful.\nYour login details\nUsername: $username\nPassword: $random_password"; 
        wp_mail($email, $subject, $msg, $headers); 

        echo "Please check your email for login details."; 
       } 

      exit(); 

     } else { 
      echo "";   
      ?> 

      <!-- <script src="http://code.jquery.com/jquery-1.4.4.js"></script> --> <!-- Remove the comments if you are not using jQuery already in your theme --> 


      <?php     
      if(get_option('users_can_register')) { //Check whether user registration is enabled by the administrator 
      ?> 

      <h1><?php the_title(); ?></h1> 
      <br /><br /> 
      <div id="result"></div> <!-- To hold validation results --> 
      <form id="wp_signup_form" action="" method="post"> 

      <label><p>Username:</p></label> 
      <input type="text" name="username" class="text" value="" /> 
      <br /><br /> 
      <label><p>Email address:</p></label> 
      <input type="text" name="email" class="text" value="" /> <br /> 
      <br /> 
      <input type="submit" id="submitbtn" class="Buttons" name="submit" value="Register" /> 
      <br /> 
      <br /> 
      </form> 

      <script type="text/javascript">       
      $("#submitbtn").click(function() { 

      $('#result').html('<img src="<?php bloginfo('template_url'); ?>/images/loader.gif" class="loader" />').fadeIn(); 
      var input_data = $('#wp_signup_form').serialize(); 
      $.ajax({ 
      type: "POST", 
      url: "<?php echo "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>", 
      data: input_data, 
      success: function(msg){ 
      $('.loader').remove(); 
      $('<div>').html(msg).appendTo('div#result').hide().fadeIn('slow'); 
      } 
      }); 
      return false; 

      }); 
      </script> 

      <?php 
       } 

      else echo "Registration is currently disabled. Please try again later."; 
      ?> 

      </div> 
      </div> 
      <?php 

      echo ""; 
     } //end of if($_post) 

} 
else { 
    wp_redirect(home_url()); exit; 
} 
?> 

ответ

0

не является безопасным для использования специальный способ регистрации и рассылки.

поэтому я предлагаю взглянуть на этот http://digwp.com/2010/12/login-register-password-code/

я надеюсь, что это то, что вы хотите. наилучшее отношение.

0

Как предлагает webfan, не рекомендуется воспроизводить функции регистрации на главной странице. Гораздо лучше было бы просто вырезать и вставить форму регистрации на странице регистрации и сохранить форму action, указанную на странице регистрации:

<form method="post" action="<?php echo site_url('wp-login.php?action=register', 'login_post') ?>"> 
    <!-- registration form HTML goes here --> 
</form>