Intereting Posts
Показать сообщения с комментариями закрытыми, с разбивкой на страницы? Вставить короткий код между '<div>' Каков наилучший способ обработки загрузки изображения Ajax на лицевой стороне? Пользовательский запрос $ wpdb для пользовательских типов сообщений по категориям WP API Получать сообщение с именами тегов вместо идентификаторов тегов Обновить сообщение meta с помощью pending_to_publish hook Создать Shortcode показывает только сообщения с custom_field meta Использование add_sub_menu для размещения в разделе «Внешний вид» Как получить персонализированные типы сообщений с полными данными в wordpress? wordpress, как заменить url / bar с помощью foo / bar для пользовательского типа сообщения BCC для подписчиков Текст по умолчанию, не отображаемый в настройках Получить URL выбранных изображений галереи? Добавление перетаскивания перетаскивания из пользовательского типа по умолчанию по умолчанию Как добавить изображение в сообщение предварительного просмотра в бесплатную тему "рецепты пищи"

Управление URL-адресами

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

скажем, ваша категория имеет элемент верхнего уровня «МУЛЬТИМЕДИА», а ребенок под ним называется «ВИДЕО».

Визуально мы говорим о подобной ситуации;

Категория таксономии

multimedia video audio topics science politics 

Ну, вы можете добраться до этого ребенка (видео) следующими двумя способами;

yoursite.com/category/multimedia/video или yoursite.com/category/video

Дело здесь в том, что WP выводит вас на ту же страницу, независимо от того, какой URL-адрес был использован, и здесь нет перенаправления, поэтому оба URL-адреса остаются в браузере посетителя, как это было, как было запрошено в первую очередь. И с любым URL-адресом итоговое содержимое идентично.

Это отвратительная ситуация от Google.

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

Предположим, вы хотели выбрать более простой URL для своей категории VIDEO, и вы хотите придерживаться только этого. В принципе, вы хотите, чтобы URL-адрес был

yoursite.com/category/video

Этого легко достичь, когда вы используете пользовательскую функцию меню, которая поставляется с WordPress, где вы можете указать URL-адрес для этого конкретного пользовательского элемента меню. Таким образом, когда посетители нажимают на ссылку VIDEO в пользовательском меню, они в конечном итоге приходят в

yoursite.com/category/video

На данный момент проблем нет …

Но как только они выбирают сообщение из этой категории, и они заканчивают тем, что пришли на почту, где метаданные сообщения отображают такие вещи, как «КАТЕГОРИЗАЦИЯ В» или «ЗАПИСАН» и т. Д., Они будут подвергаться альтернативному URL-адресу для этого ВИДЕО.

Таким образом, если пользователь нажимает на ссылку VIDEO в области «Категории в категории», URL-адрес, в котором они будут входить, будет

yoursite.com/category/multimedia/video

И с этим, идет ваш рейтинг SEO.

Мой вопрос заключается в том, какие методы вы используете здесь, поэтому WordPress всегда и всегда использует один единственный URL-адрес, указанный вами в пользовательском меню.

Я думал, что категории slugs могут сделать это, но когда я проверил его, функция slug позволяет мне изменять только термин категории в URL-адресе, а не путь к нему.

Если бы это дало мне выбор, как

видео: / категория / видео

Я бы сделал.

Но этот выбор недоступен в данный момент. Когда вы это сделаете, вы в конечном итоге получаете следующую пулю

categoryvideo

Это потому, что / не является допустимым символом для пули.

Пожалуйста, предложите альтернативный способ сказать WordPress постоянно придерживаться / категории / видео.

Прежде чем предлагать очевидное (ну, просто пропустите «мультимедиа» и сделайте «видео» кошкой верхнего уровня.) Позвольте мне сказать, что это предложение не будет работать для нашей ситуации.

Solutions Collecting From Web of "Управление URL-адресами"

Вы можете фильтровать 'term_link' .

просто непроверенная идея, написанная непосредственно в поле ответа

 add_filter( 'term_link', 'wpse_55476_categore_ur_filter', 10, 3 ); function wpse_55476_categore_ur_filter( $termlink, $term, $taxonomy ) { if ( 'category' !== $taxonomy ) { return $termlink; } // separate the URL $parts = explode( '/', $termlink ); // get the term $term_slug = array_pop( $parts ); $out = array (); $cat_base = get_option( 'category_base', 'category' ); foreach ( $parts as $part ) { $out[] = $part; if ( $part === $cat_base ) { $out[] = $term_slug; return implode( '/', $out ) . '/; } } } 

Что-то вроде этого должно работать каждый раз, когда тема или плагин вызывает функцию WP, которая генерирует ссылку категории, потому что все эти функции делегируют свою работу get_term_link() где вызывается этот фильтр.

Итак … часть первая решена, вторая часть вашего вопроса: что произойдет, если кто-то назовет длинный URL? Вы можете подключиться к 'wp' и выполнить ту же проверку ( старый пример ). Может быть слишком медленным, поэтому краткосрочная ссылка должна храниться в поле meta . О, подожди … для этого нет таблицы, потому что … ухм … решений . 🙂
Но у нас есть некоторые решения для этого. Не нужно повторять их здесь.

Альтернатива: .htaccess и RedirectMatch

Если у вас есть только контролируемый и ограниченный набор подкатегорий (и вы не хотите изменять часть category ), используйте mod_alias Apache и простую переадресацию в вашем .htaccess или .httpd.conf :

 RedirectMatch Permanent ^/category/([^/]*)/(audio|video|smell)/(.*) /category/$2/$3 

(audio|video|smell) – это список ваших дочерних категорий. Это правило должно быть выше правил перезаписи WordPress.

Здесь есть 3 возможных варианта …

  1. Если вы еще этого не сделали … установите WordPress SEO от Yoast

Этот плагин позволяет вам устанавливать канонические ссылки и дает вам возможность удалить многие дублированные ссылки категорий с индексации Google и т. Д.

Этот плагин должен решить большинство ваших проблем с индексацией и SEO.

  1. .htaccess и переписать правила, чтобы люди не переходили в категорию / подкатегорию / послезаголовок

см. http://perishablepress.com/category/web-design/htaccess/ для множества замечательных идей и примеров кода

  1. Установите достойный плагин Sitemap для сайта XML и категории блоков и тегов. Примечание … Плагин SEO Yoast имеет эти настройки конфигурации

Преимущество 1. заключается в том, что оно простое и не требует кодирования бэкэнд.

Преимущество 2 заключается в том, что он помогает вам программно работать через все ваши проблемы с каноническими URL-адресами. Однако вам все еще нужно 3, чтобы остановить появление дублированного содержимого

Дело в том, что … Google не наказывает вас за плохой SEO … если вы новичок во всем этом, и лучший подход заключается в том, чтобы сократить количество дублирующих ссылок на контент в Google в первую очередь.

надеюсь, это поможет?

Damien