2016-03-15 61 views
-1

我正在創建一個創建簡碼的Wordpress插件。我想通過我的插件加載一個給定名稱的簡碼。創建多個簡碼

這樣[name]

但是,當我救我的簡碼生成短碼,但不保存

我在做什麼錯。

這是我的形式

<form method="post" enctype="multipart/form-data"> 
<table> 
    <tr> 
     <td> 
      Naam: 
     </td> 
     <td> 
      <input name="naam" type="text" placeholder="Geef hier een unieke naam op" required/> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Site URL: 
     </td> 
     <td> 
      <input name="url" type="text" placeholder="Site URL" required/> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Breedte: 
     </td> 
     <td> 
      <input name="breedte" type="text" placeholder="Breedte in pixels" required/> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Bevestig: 
     </td> 
     <td> 
      <?php submit_button('Upload') ?> 
     </td> 
    </tr> 
</table> 
</form> 

在後:

if(isset($_POST['naam'])) { 
    $naam = $_POST['naam']; 
    $url = $_POST['url']; 
    $breedte = $_POST['breedte']; 
    createShortcode($naam, $url, $breedte); 
    add_shortcode($naam, 'createShortcode'); 
} 

創建簡碼功能

function createShortcode($naam, $url, $breedte){ 
    echo 'Naam: ' . $naam . ' '; 
    echo 'URL: ' . $url . ' '; 
    echo 'Breedte: ' . $breedte . ' '; 
} 
+0

來存儲它,你必須做'return',而不是直接打印 – ameenulla0007

+0

沒有意義..沒有改變 –

+0

如果這是沒有意義的,你應該避免追問,如果解決方案惹惱你.. @Kempers – ameenulla0007

回答

0

你英里瞭解add_shortcode如何工作。它只會在表單提交時添加,如果在add_shortcode之後調用短代碼,那將是唯一可以工作的地方。 add_shortcode的作品有點像add_action和頁面上的實際短代碼,如do_action,即觸發了提供給add_shortcode的掛鉤。它沒有保存在任何地方。此外,您傳遞給add_shortcode的功能不正確。

+0

那我該怎麼做呢?你有解決方法嗎? –

+0

@ ThijsKempers很好,一種選擇是將數據保存到數據庫中,然後在'plugins_loaded'鉤子上運行一個函數,它將從DB中獲取已保存的數據,併爲已保存的短代碼的每個實例運行'add_shortcode' 。 –

+0

這將是一個代碼的地獄不是嗎?不知道如何開始,甚至不知道如何去做...... –