2015-02-10 124 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;也可以。