防止从 Medialibrary 中删除附件
Prevent attachment from being deleted from Medialibrary
在 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>
但似乎我的函数根本没有触发。图像附件正在被完全删除。这段代码有什么问题?
嗯,你很幸运;
Up to and including WordPress 2.7 it is fired after the attachment is deleted from the database and the file system, limiting its usefulness. As of changeset #10400 (WordPress 2.8), the action will fire before anything is deleted.
因此,您可以更改删除行为。但是,你不应该用 javascript 来做。这对执行的 PHP 代码没有影响。
add_action( 'delete_attachment', 'check_relations' );
function check_relations( $post_id ){
wp_die("Sorry, you can't delete this.");
}
也许简单的 return false;
也行。
在 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>
但似乎我的函数根本没有触发。图像附件正在被完全删除。这段代码有什么问题?
嗯,你很幸运;
Up to and including WordPress 2.7 it is fired after the attachment is deleted from the database and the file system, limiting its usefulness. As of changeset #10400 (WordPress 2.8), the action will fire before anything is deleted.
因此,您可以更改删除行为。但是,你不应该用 javascript 来做。这对执行的 PHP 代码没有影响。
add_action( 'delete_attachment', 'check_relations' );
function check_relations( $post_id ){
wp_die("Sorry, you can't delete this.");
}
也许简单的 return false;
也行。