2015-02-10 69 views
0

在Wordpress管理媒體庫頁面(upload.php)我想對delete_attachment操作進行一些檢查。防止從Medialibrary中刪除附件

我希望我的自定義函數在附件被刪除之前觸發。

在這個函數中,我想檢查它與數據庫中另一個對象的關係。只有在沒有關係的情況下才刪除它。

我用這個代碼(在functions.php中),看看我的功能是在delete_attachment觸發:

<code> 
     add_action('delete_attachment', 'check_relations'); 
     function check_relations($post_id){ 
     ?>  
      <script> 
      function myFunction() { 
       alert("Hello! I am an alert box!"); 
       } 
     </script> 
     <?php 
     } 

</code> 

但似乎我的函數的不點火的。圖像附件正在被完全刪除。這段代碼有什麼問題?

回答

3

那麼,你是幸運的;

直到且包括WordPress 2.7,在將附件從數據庫和文件系統中刪除後,它被觸發,限制了它的用處。從更改集#10400(WordPress 2.8)開始,在刪除任何內容之前,操作將觸發。

因此,您可以更改刪除行爲。但是,你不應該用javascript來做。這對執行的PHP代碼沒有影響。

add_action('delete_attachment', 'check_relations'); 
function check_relations($post_id){ 
    wp_die("Sorry, you can't delete this."); 
} 

也許一個簡單的return false;也可以。