在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>
但似乎我的功能根本没有触发。并且图像附件被完全删除。这段代码有什么问题?
好吧,你是幸运的;
直到WordPress 2.7为止(包括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;
也可以。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句