Как удалить автора из постов?
-
В фиде торчит под каждым постом логин автора. Хотя на самом сайте это скрыто. Как из фида его убрать?
Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]
-
Добрый день!
С этим, скорее всего, придётся немножко повозиться, поскольку в шаблоне фида нет фильтров для отдельных тегов и частей разметки. Элегантного решения я не вижу, но можно заменить шаблон целиком. Он хранится в файле
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 года, 10 месяцев назад пользователем 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;
. Но это уже частности, экспериментируйте.Можно с вами сконтактироваться в телеге, например?
Давайте ограничимся форумом. Я стараюсь по возможности уделять пару часов в неделю поддержке ClassicPress и WordPress, но вне этих часов вряд ли смогу чем-то помочь.
@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 в дочерней теме
- Тема «Как удалить автора из постов?» закрыта для новых ответов.