Запускать функцию только для массива пользовательских типов записей - PullRequest
0 голосов
/ 15 февраля 2019

Я хотел бы запустить следующий код только для определенных типов сообщений.теперь он работает только с одним конкретным пользовательским типом 'file'.

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

 // For deleting attachments when Deleting POSTS
add_action( 'before_delete_post', 'mtp_delete_attached_thumbnail_for_trashed_product', 20, 1 );

function mtp_delete_attached_thumbnail_for_trashed_product( $post_id ) {
 
 // gets ID of post being trashed
 $post_type = get_post_type( $post_id );
  

 // does not run on other post types
 if ( $post_type != 'file' ) {
 return true;
 }

 // get ID of featured image
 $post_thumbnail_id = get_post_thumbnail_id( $post_id );
  
 // delete featured image
 wp_delete_attachment( $post_thumbnail_id, true );

}

например, только если пользовательский тип записи «file» или «share» или «folder», то удаляемое изображение будет удалено при удалении записи.

1 Ответ

0 голосов
/ 15 февраля 2019

Вы можете использовать in_array (), чтобы упростить это.

// For deleting attachments when Deleting POSTS
add_action( 'before_delete_post', 'mtp_delete_attached_thumbnail_for_trashed_product', 20, 1 );

function mtp_delete_attached_thumbnail_for_trashed_product( $post_id ) {

 // List of post types.
  $post_types = array(
          'file',
          'share',
          'folder',
   );

 // gets ID of post being trashed
 $post_type = get_post_type( $post_id );


 // does not run on other post types
 if ( ! in_array( $post_type, $post_types, true) ) {
 return true;
 }

 // get ID of featured image
 $post_thumbnail_id = get_post_thumbnail_id( $post_id );

 // delete featured image
 wp_delete_attachment( $post_thumbnail_id, true );

}

https://www.w3schools.com/php/func_array_in_array.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...