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

  • В фиде торчит под каждым постом логин автора. Хотя на самом сайте это скрыто. Как из фида его убрать?

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 15 ответов — с 1 по 15 (всего 16)
  • Добрый день!

    С этим, скорее всего, придётся немножко повозиться, поскольку в шаблоне фида нет фильтров для отдельных тегов и частей разметки. Элегантного решения я не вижу, но можно заменить шаблон целиком. Он хранится в файле wp-includes/feed-rss2.php.

    Последовательность действий примерно такая:
    1. Скопировать содержимое шаблона в отдельный php-файл.
    2. Отредактировать шаблон под свои нужды. В данном случае удалить строчку с тегом автора:
    <dc:creator><![CDATA[<?php the_author() ?>]]></dc:creator>.
    3. Сохранить этот модифицированный файл где-нибудь в пределах wp-content/, чтобы не затёрся при обновлениях движка.
    4. Отключить стандартный шаблон с помощью хука:
    remove_action( 'do_feed_rss2', 'do_feed_rss2', 10 );.
    5. Подключить с помощью того же хука свой шаблон:

    function my_override_do_feed_rss2( $for_comments ) {
        
        // Для комментариев используем стандартный шаблон из папки wp-includes
        if ( $for_comments ) {	
            load_template( ABSPATH . WPINC . '/feed-rss2-comments.php' );
    
        // Для постов подтягиваем файл с модифицированным шаблоном (указать путь)
        } else {
            load_template( 'path/to/my-feed-rss2-template.php' );
        }
    }
    
    add_action( 'do_feed_rss2', 'my_override_do_feed_rss2' );
    

    Желательно оформить всё это в виде плагина и, соответственно, хранить модифицированный шаблон в его папке. При этом путь к шаблону будет задаваться через plugin_dir_path( __FILE__ ).

    Код теоретический, приблизительный, на основе документации. Я не тестировал этот метод на практике. Но по идее должно сработать.

    Минус такого решения в том, что ваш файл не будет обновляться движком. Исходный шаблон со временем может измениться.

    Успехов!

    @norske, а нельзя просто удалить строчку
    <dc:creator><![CDATA[<?php the_author() ?>]]></dc:creator>.
    и сохранить файл?

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

    Кроме того, наличие в ядре изменённых файлов может создать много разных проблем. Некоторые плагины безопасности посчитают сайт взломанным. Могут возникать файловые конфликты при обновлениях и установке плагинов, неправильно определяться версия движка и др.

    Никогда не изменяйте файлы ядра напрямую. Все модификации вносятся посредством хуков (событий и фильтров), которые прописываются в файлах тем или плагинов. Только так.

    • Ответ изменён 4 месяца, 1 неделя назад пользователем Norske.

    @Rupor, ответ временно попал под антиспам из-за ссылки, но его благополучно восстановили. Извините за неудобство.

    @norske, ок, спасибо в любом случае. Решил не удалять, а изменить ник. По идее должно сработать. Может вы в курсе ко всему как в rss сделать так, чтоб миниатюра не обрезалась? сейчас у меня такой код:

    function image_to_rss($content) {
    	global $post;
    	if (has_post_thumbnail( $post->ID )){
    		$content = '' . get_the_post_thumbnail( $post->ID, 'thumbnail', array('style' => 'float:left; margin:0 15px 15px 0;' )) . '' . $content;
    	}
    	return $content;
    }
    add_filter('the_excerpt_rss', 'image_to_rss');
    add_filter('the_content_feed', 'image_to_rss');

    как в rss сделать так, чтоб миниатюра не обрезалась?

    Уточните, пожалуйста, что значит «не обрезалась»? Не уверен, что я правильно понял вопрос.

    Насколько я вижу, у вас сами картинки (файлы) миниатюр идут размером 150 на 150 пикселей. Видимо, в меню «Настройки» -> «Медиафайлы» стоит галочка «Обрезать миниатюру точно по размеру». Если вы хотите, чтобы миниатюры (файлы) сохраняли пропорции оригинала, эту галку нужно снять, а затем пройтись по картинкам одним из плагинов, которые регенерируют минатюры (например).

    Если же вы именно в фиде хотите просто выводить картинки большего размера, то замените параметр ‘thumbnail’ в функции get_the_post_thumbnail() на любой другой стандартный размер: ‘medium’, ‘large’ или ‘full’ и отрегулируйте CSS стили в третьем параметре как вам нужно.

    @norske точно, в первом действительно стояла галка. А во втором вы не подскажете, каков стандарт в этом случае? Что принято выбирать для гуглновостей в частности? ‘medium’, ‘large’ или ‘full’? И вот насчёт «отрегулируйте CSS стили в третьем параметре как вам нужно» не понял

    Что принято выбирать для гуглновостей в частности?

    С этим лучше обратиться к документации Гугла, т.к. вопрос выходит за пределы темы WordPress. Могу предположить, что Гугл захочет макимум контента: полноразмерные картинки и полные тексты. Но я практически не работаю с фидами, поэтому могу ошибаться.

    По стилям. У вас в качестве параметра в той же функции прописано array('style' => 'float:left; margin:0 15px 15px 0;' ). То есть картинка выравнена по левому краю и обтекается текстом, при этом имея отступы по 15px справа и снизу. Возможно, при изменении формата картинки вы захотите эти значения подогнать. Например, сделать картинку на всю ширину без обтекания. Тогда вместо float:left; margin:0 15px 15px 0; там будет нечто вроде width: auto; margin-bottom: 15px;. Но это уже частности, экспериментируйте.

    @norske, как же не работаете, если уже столько полезных рекомендаций дали?)

    • Ответ изменён 4 месяца, 1 неделя назад пользователем Yui. Причина: контакты на форуме спрашивать не нужно

    Можно с вами сконтактироваться в телеге, например?

    Давайте ограничимся форумом. Я стараюсь по возможности уделять пару часов в неделю поддержке ClassicPress и WordPress, но вне этих часов вряд ли смогу чем-то помочь.

    @norske, жаль, конечно. Просто вы реально толковый спец и без в…онов как некоторые).
    Ок, в этом фиде куча ошибок и тоже нет картинок. Не подскажете как его исправить?

    @norske, кстати, по изменению миниатюр в фиде — не помогло, гуглновости почему-то упорно ставит 150х150

    Rupor, это ищете?

    
    if( ! is_admin() ){
    	add_action( 'pre_handle_404', 'remove_author_pages_page' );
    	add_filter( 'author_link', 'remove_author_pages_link' );
    	function remove_author_pages_page( $false ) {
    		if ( is_author() ) {
    			global $wp_query;
    			$wp_query->set_404();
    			status_header( 404 );
    			nocache_headers();
    			return true;
    		}
    		return $false;
    	}
    	function remove_author_pages_link( $content ) {
    		return home_url();
    	}
    }
    

    @pe4a1ni, ну вполне возможно. А насколько это безопасно и куда этот код вставлять?

    Я ткнул в function.php в дочерней теме

Просмотр 15 ответов — с 1 по 15 (всего 16)