Поддержка Проблемы и решения Как получить список вложений с меткой?

  • Добавил метки к вложениям кодом:

    function wptp_add_tags_to_attachments() {
        register_taxonomy_for_object_type( 'post_tag', 'attachment' );
    }
    add_action( 'init' , 'wptp_add_tags_to_attachments' );

    Но по этой метке не выводится список вложений.
    Как теперь вывести/получить список вложений с определенной меткой?

Просмотр 15 ответов — с 1 по 15 (всего 18)
  • То есть надо сообщить главному циклу вордпресс что надо выбрать не посты а вложения. Как это сделать?

    Post Type: attachment у вложений. Может поможет что у вас там

    Наверное не совсем правило описал вопрос.
    Я могу получить список вложений WP_Query с соответствующими параметрами.
    Но хотелось бы получать «стандартным способом»
    То есть при переходе на страницу с меткой (или на страницу с меткой отдельной таксономии) выводились не только посты, но и вложения, которые будут иметь соответствующую метку.

    Для изменения инициализационной выборки лучше всего использовать хук ‘pre_get_posts’, а не делать выборку заново.
    Матчасть: https://developer.wordpress.org/reference/hooks/pre_get_posts/

    или на страницу с меткой отдельной таксономии

    «метка» — по-любому терм отдельной таксономии «метки» и никакой другой.

    Я имел ввиду что можно использовать стандартные метки
    или
    завести новые таксономию

    add_action('pre_get_posts', 'get_attachment_filter');
    function get_attachment_filter( $query ){
    	if ( ! is_admin() && $query->is_main_query() && $query->is_attachment ) {
    		$query->set('post_type', 'attachment');
    	}
    }

    так? что-то не работает

    • Ответ изменён 2 года, 8 месяцев назад пользователем selftrips ru.

    так?

    Похоже.
    Но если выводится is_attachment, то и так уже ‘post_type’ == ‘attachment’.
    А если в условии будет is_tag(), то при выводе страницы записей с меткой будут выводиться аттачи с этой меткой.

    не получается ни так
    ! is_admin() && $query->is_main_query() && $query->is_tag
    ни так
    ! is_admin() && $query->is_main_query() && $query->is_taх
    зарегистрированы и метки для вложений и новая таксономия типа метки для вложений…
    В чем может быть дело?

    • Ответ изменён 2 года, 8 месяцев назад пользователем selftrips ru.

    Куда код добавлять надо? В конец functions.php?

    Вообще-то, is_tag и is_tag() — две большие разницы.

    А в чем? В примере было без скобок….
    Но со скобками так же пробовал — не помогло

    • Ответ изменён 2 года, 8 месяцев назад пользователем selftrips ru.

    А в чем?

    В том, что без скобок это переменная/свойство, а со скобками функция/метод. Азы php.

    1. Так как правильно? (хотя пробовал и так и так)
    2. Почему не работает ни в какой варианте?

    2. Почему не работает ни в какой варианте?

    Отсюда не видно. Разбирайтесь. У Вас есть все: и доступ к коду, и генерируемые движком sql-запросы. А у меня нет даже похожей среды, чтобы по-быстрому проверить.

    Может быть проблема в том что attachment имеет post_status «inherit»?

Просмотр 15 ответов — с 1 по 15 (всего 18)
  • Тема «Как получить список вложений с меткой?» закрыта для новых ответов.