Intereting Posts
Перенаправление POST в php-скрипт Как я могу правильно контролировать числа и точки, которые появляются в разбивке на страницы? Как удалить дату и категорию из моих портфолио страниц Как превратить shortcode в php? Как добавить класс в отдельные абзацы в моем сообщении? Каков наилучший способ предоставить пользователям плагинов способ настройки стилей Использование мета-поля piklist, странное поведение PHP-скрипт не может подключиться к базе данных на порту 3307 Добавление конечных точек rest api к старой теме Многопользовательские проблемы с таксономией Я не могу найти соответствующую часть цикла в файле темы. Как найти полный контент с помощью «Подробнее …» Использовать дату в URL-адресе пользовательского типа сообщения Дополнительная тема – Мобильная навигация с определенным разрешением Обновление отдельной базы данных при изменении вложения W3 Total Cache CSS & JS-файлы Проблемы с GZip

Изменение структуры URL-адреса RSS-ленты

Я нахожусь в процессе создания сайта wordpress, и у меня остается только одна проблема – RSS-каналы.

В настоящее время на веб-сайте есть файл .htaccess блокирующий доступ к страницам /category/* . Это было частью требования, что сайт не является явно WordPress, и /category является достойным показателем этого.

Каждая категория находится на странице, на которой отображается контент категории – так /category/news становится /news .

Тем не менее, RSS-каналы всегда указывают на /category/xxx/feed – есть ли способ удалить эту /category/ часть? Таким образом, люди могли просматривать RSS-канал по адресу http://example.com/news/feed ?

Я пытался возиться с файлом .htaccess , но это одна из областей создания веб-приложения, на которую я не уверен на 100%. Каждый поиск вернулся с результатами того, как указать фид на Feedburner, а это не то, что я хочу делать вообще.

После некоторой мысли – это может быть достигнуто с некоторым творческим злоупотреблением существующими фидами:

  • Легкая часть – перенаправление категорий в каналы комментариев к комментариям
  • жесткая часть – создайте фид комментариев к странице, думайте, что они являются категориями каналов

Что-то вроде этого:

 Category_Feed_At_Page::on_load(); /** * Repurpose page feeds for category of same name feeds. */ class Category_Feed_At_Page { static function on_load() { add_action( 'pre_get_posts', array( __CLASS__, 'pre_get_posts' ) ); add_action( 'do_feed_rdf', array( __CLASS__, 'do_feed' ), 9 ); add_action( 'do_feed_rss', array( __CLASS__, 'do_feed' ), 9 ); add_action( 'do_feed_rss2', array( __CLASS__, 'do_feed' ), 9 ); add_action( 'do_feed_atom', array( __CLASS__, 'do_feed' ), 9 ); } /** * Change page's comment feed into category feed. * * @param WP_Query $query */ static function pre_get_posts( $query ) { if ( $query->is_main_query() && $query->is_page() && $query->is_feed() ) { $name = $query->get( 'pagename' ); require_once( ABSPATH . 'wp-admin/includes/taxonomy.php' ); if ( category_exists( $name ) ) { $category = get_category_by_slug( $name ); $query->set( 'category_name', $name ); $query->set( 'cat', $category->term_id ); $query->set( 'pagename', '' ); $query->is_page = false; $query->is_comment_feed = false; $query->is_category = true; $query->is_singular = false; remove_action( 'do_feed_rdf', array( __CLASS__, 'do_feed' ), 9 ); remove_action( 'do_feed_rss', array( __CLASS__, 'do_feed' ), 9 ); remove_action( 'do_feed_rss2', array( __CLASS__, 'do_feed' ), 9 ); remove_action( 'do_feed_atom', array( __CLASS__, 'do_feed' ), 9 ); remove_action( 'template_redirect', 'redirect_canonical' ); } } } /** * Redirect real category feed to page feed. */ static function do_feed() { if ( ! is_category() ) return; $name = get_query_var( 'category_name' ); $page = get_page_by_path( $name ); if ( ! empty( $page ) ) { wp_safe_redirect( get_post_comments_feed_link( $page->ID ) ); die; } } } 

Я нашел (на мой взгляд) лучший и самый простой способ сделать это, и подумал, что я должен оставить его в качестве ответа, если кто-нибудь наткнется на эту тему.

Я загрузил и установил плагин WP No Category Base и сделал именно то, что мне было нужно.

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


Обновлено Ссылка : Нет базы категорий (WPML)

Вы знаете, что вы можете изменить префикс тэга и категории slug на странице настроек постоянных ссылок, правильно?

Так что, если вам мешает иметь «категорию» в категории «/ category / news», но принимает «/ cat / news», вы можете изменить ее там.