Установите категорию вложения по умолчанию


Я хотел применить те же категории, которые существуют для сообщений, к вложениям, поэтому я написал этот код:

function wpmediacategory_init() {
    register_taxonomy_for_object_type( 'category', 'attachment' );
}
add_action( 'init', 'wpmediacategory_init' );

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что поведение не совсем такое, как с постами. Есть 2 функции, которых я хотел бы достичь:

  1. При добавлении нового вложения установите для него значение "Без категории"
  2. При обновлении вложения, если в нем не выбраны категории, установите для него категорию "Без категорий".

Я пытался думать какие крючки я мог бы использовать, но без особого успеха. Как я мог бы решить эту проблему?

Author: Enrique Moreno Tent, 2014-02-22

1 answers

Чтобы решить проблему 1, вы можете подключиться к крючку add_attachment и edit_attachment.

add_action('add_attachment', 'wpse_set_attachment_category');
add_action('edit_attachment', 'wpse_set_attachment_category');
function wpse_set_attachment_category( $post_ID )
{
    // if attachment already have categories, stop here
    if( wp_get_object_terms( $post_ID, 'category' ) )
        return;

    // no, then get the default one
    $post_category = array( get_option('default_category') );

    // then set category if default category is set on writting page
    if( $post_category )
        wp_set_post_categories( $post_ID, $post_category );
}
 2
Author: Shazzad, 2014-02-22 16:56:13