在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>
但似乎我的功能根本没有发射。并且图像附件正在被完全删除。这段代码有什么问题?
答案 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;
也可以。