我正在尝试替换核心WP功能wp_delete附件。在我的functions.php文件中,我添加了以下代码:
add_action( 'init', 'remove_my_action' );
function remove_my_action(){
remove_action( 'delete_attachment', 'wp_delete_attachment' );
add_filter('delete_attachment','wp_delete_attachment',10,2);
}
And then the copy of the replaced function goes here with edited code.
这不起作用。我收到错误:无法重新声明wp_delete_attachment()。我已尝试过其他一些方法,但无法让它发挥作用。
底线是我需要在wp_delete_attachment函数的中间添加一些代码。如果我可以用我的版本以某种方式替换该函数或将代码添加到现有函数而不编辑wp-includes / post.php文件中的实际代码(以便版本更新不会覆盖我的代码),我会对两者都满意。如何才能做到这一点?我通过问题找到的所有选项都没有解决问题。谢谢!
答案 0 :(得分:1)
您需要将//comments
的副本命名为唯一名称。也许可以使用您的网站名称命名为wp_delete_attachment
。
另外,我认为您需要使用function my_site_wp_delete_attachment()
代替add_action
。
add_filter