2017-09-25 88 views
0

我正在創建一個專門的WordPress插件,除了這個問題的其餘部分外,我們將其稱爲wordpress插件文件夾作爲插件文件夾。在插件文件夾中,我有多個文件,一個名爲form_submit.php的文件和一個名爲form_template.php的文件。 form_template.php被註冊爲頁面模板,可以通過WordPress儀表板應用於任何帖子或頁面。這個問題是因爲form_submit.php文件位於插件文件夾內部,我如何映射我的表單動作以將數據發佈到文件中?只需將其列爲表單動作WordPress插件

<form action="form_submit.php" method="post" > 
因爲我需要,因爲它會尋找在該網站不是插件文件夾的根目錄下的form_submit.php並試圖繪製出URL方案用於其在

都不行插件文件夾如

<form action="wp-content/plugins/plug-folder/form_submit.php" method="post" > 

也不管用,是否存在我沒​​有想到的方法?

編輯:切換到使用plugins_url()後,建議它在我使用表單的兩個實例之一中工作。我的註冊表格(下面附上)不起作用,返回錯誤加載頁面。

<form action="<?php echo plugins_url('register_submit.php', __FILE__); ?>" method="post" autocomplete="off"> 

          <?php if($_GET['error'] == 'username'){ ?> 
           <div class="error_message"> 
            Uh oh! That username is already taken. 
           </div> 
          <?php }else if($_GET['error'] == 'email'){ ?> 
           <div class="error_message"> 
            Uh oh! That email is already in use. 
           </div> 
          <?php }else if($_GET['error'] == 'email_invalid'){ ?> 
           <div class="error_message"> 
            Uh oh! Make sure to enter a valid email. 
           </div> 
          <?php }else if($_GET['error'] == 'signup_blank'){ ?> 
           <div class="error_message"> 
            Uh oh! Make sure to fill in all the fields. 
           </div> 
          <?php } ?> 


          <input type="text" name="first_name" class="signup_input" id="first_name_input" placeholder="First Name" value="<?= $_GET['first_name']; ?>" required> 

          <input type="text" name="last_name" class="signup_input" id="last_name_input" placeholder="Last Name" value="<?= $_GET['last_name']; ?>" required> 

          <input type="text" name="email" class="signup_input" placeholder="Email" value="<?= $_GET['email']; ?>" required> 

          <input type="password" name="password" class="signup_input" placeholder="Password" required> 

          <input type="radio" name="gender" value="Female" required> <font color="#FFF">Female</font> &nbsp; 
          <input type="radio" name="gender" value="Male" required> <font color="#FFF">Male </font> 

          <input type="submit" name="submit" class="btn btn-default" value="Sign Up" style="margin-left: 15px;"> 

</form> 

但我的登錄表單工作。

    <form action="<?php echo plugins_url('login_submit.php', __FILE__); ?>" method="post" autocomplete="off"> 

         <div class="list-block"> 
         <ul> 
           <span class="ti-user"></span> 
           <div class="item-input"> 
            <input type="text" name="email" placeholder="E-Mail"> 
           </div> 
          <div class="item-content margin-top-15"> 
           <span class="ti-lock"></span> 
           <div class="item-input"> 
            <input type="password" name="password" placeholder="Password"> 
           </div> 
         </ul> 
         </div> 
         <div class="log-in-btn margin-top-15 margin-bottom-30" > 
         <input type="submit" name="submit" class="btn btn-default"> 
         </div> 
         </form> 

我很困惑,這會導致這種差別。

+0

在wp管理員設置頁面應該有一個複選框,表示任何人都可以註冊。覈實。如果它不能解決你的問題,打開調試模式,通過轉到wp config並將調試更改爲true – shazyriver

+0

@shazyriver這是我自己的外部數據庫而不是WordPress數據庫,不與WordPress數據庫進行交互而不是在WordPress上基於網站。 –

+0

無論如何,你將不得不妥善調試它。如果它正在登錄,它也將用於註冊。 – shazyriver

回答

2

使用plugins_url()

<form action="<?php echo plugins_url('form_submit.php', __FILE__); ?>" method="post" > 

法典參考https://codex.wordpress.org/Function_Reference/plugins_url

編輯:請檢查wordpress設置。我認爲你沒有啓用註冊。

希望它有幫助。

+0

我曾嘗試過這一點,它的成功有限,會不會在本地環境中正常工作?我只是將其插入其中的一個,它可以工作,但仍然不適用於WP以外的完美工作。 –

+0

它可以用於本地主機和服務器。你能否解釋這個問題,在這種情況下,它不起作用 – shazyriver

+0

發佈了更多細節。 –