防止附件从Medialibrary中删除

时间:2015-02-10 07:23:35

标签: wordpress hook attachment

在Wordpress管理媒体库页面(upload.php)中,我想对delete_attachment操作进行一些检查。

我希望在附件被删除之前触发我的自定义功能。

在这个函数中,我想检查它与数据库中另一个对象的关系。只有在根本没有任何关系时才删除它。

我使用此代码(在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>

但似乎我的功能根本没有发射。并且图像附件正在被完全删除。这段代码有什么问题?

1 个答案:

答案 0 :(得分:4)

嗯,你很幸运;

  

直到并包括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;也可以。