2015-02-10 1 views
0

На странице библиотеки медиаредакторов Wordpress (upload.php) Я хотел бы сделать некоторую проверку действия delete_attachment.Запретить удаление приложения из Medialibrary

Я хочу, чтобы моя пользовательская функция срабатывала перед удалением приложения.

В этой функции я хочу проверить ее отношения с другими объектами в базе данных. И удалите его только в том случае, если вообще нет отношений.

Я использую этот код (в 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> 

но мне кажется, что моя функция не стрелять вообще. И прикрепление изображения полностью удаляется. Что не так в этом коде?

ответ

3

Ну, вам повезло;

До и включая WordPress 2.7 он запускается после удаления вложения из базы данных и файловой системы, что ограничивает ее полезность. Начиная с changeet # 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;.