Intereting Posts
Не удается получить доступ к моему wp-admin после установки сжатия Gzip Кто-нибудь разработал плагин для защиты от нежелательной почты, чтобы просто позволить пользователям блокировать все, что они хотят, но тот, который также будет легко работать по IP-адресам? Проверьте ajax, вызванный с интерфейсного или с панели управления Стили ссылок на страницы панели администратора Использование разбиения на страницы для пользовательского типа сообщений и возвращает возвращаемое значение 404 Использование пользовательского WP_Query с контуром get_template_part URL-адрес Remap от Относительно Абсолютного Изменение изображения при наведении Сравните пользовательские таксономии обновленного сообщения (или нового сообщения) Добавить пользовательские столбцы в пользовательскую страницу просмотра типа сообщения Правильная реализация кнопки Facebook Like удаление пользовательского аватара Запрос на удаление всех выделенных изображений и удаление метаданных? Оптимизировать вставку и удаление почты для массовых операций? Отключить плагин для определенной группы пользователей

add_rewrite_rule () vs $ wp_rewrite-> правила vs 'rewrite_rules_array'?

Я написал правила перезаписи для моих настраиваемых типов сообщений. они хорошо работают, за исключением того, что WP не обновляет URL-адрес в User Agent, когда redirect_url не соответствует запрошенному_URL.

все остальное отлично работает, включая мои пользовательские permastructs ('post_type_link') и настраиваемые параметры шаблона ('single-template').

мои правила:

// custom URL rewrite for Album posts add_action( 'init', 'gregory_rewrite_album_link' ); function gregory_rewrite_album_link() { // album--%album_slug%/ OR album/%album_slug%/ // preferred permastruct: album--%album_slug%/ add_rewrite_rule( '^album(/|--)([^/]+)/?$', 'index.php?post_type=gregory-cpt-album&name=$matches[2]', 'top' ); } // custom URL rewrite for Track posts add_action( 'init', 'gregory_rewrite_track_link' ); function gregory_rewrite_track_link() { // accepts and rewrites the following permutations: // where album would be: album--%album_slug% OR album/%album_slug% // where track would be: track--%track_slug% OR track/%track_slug% // preferred permastruct: album--%album_slug%/track--%track_slug%/ add_rewrite_rule( '^(album(/|--)[^/]+/)?track(/|--)([^/]+)/?$', 'index.php?post_type=gregory-cpt-track&name=$matches[4]', 'top' ); } 

Мне было интересно узнать, каковы различия между использованием add_rewrite_rule (), добавлением правил непосредственно в правила $ wp_rewrite-> и подключением к rewrite_rules_array? есть ли какие-то различия? будет ли одна из альтернатив заставлять WP обновлять URL-адрес в User Agent, когда постоянная ссылка целевой почты отличается от запрошенного URL-адреса?

один пример URL-адреса, который не обновляется … записи альбома и трека связаны термином терминологии. крючок в «post_type_link» для дорожек находит связанный альбом и вставляет его пулю в постоянную ссылку. правила перезаписи выше, убедитесь, что работают как новые, так и традиционные свойства, но запрашивая этот url /album/serenity/track--beetle-attack/ , найдут сообщение, но не обновят URL-адрес /album--serenity/track--beetle-attack/ .

маловероятно, что кто-то будет использовать традиционные пермаструктуры, потому что я не буду рекламировать их или использовать их на своем сайте, но было бы неплохо добавить, что URL-адрес обновится в User Agent, если это возможно.

веселит,
Грегори

Solutions Collecting From Web of "add_rewrite_rule () vs $ wp_rewrite-> правила vs 'rewrite_rules_array'?"

Прежде всего используйте add_rewrite_rule() поверх messing напрямую с $wp_rewrite->rules если это возможно. Последнее немного низкоуровневое.

Что касается «url not update» – это не проблема правил перезаписи. Они просто указывают URL-адреса на их контент, но они не обновляют адресную строку пользователя.

Файл, который отвечает за это, – /wp-includes/canonical.php . В частности, функция redirect_canonical() подключена к template_redirect .

Этот redirect_canonical() имеет свой собственный фильтр:

 add_filter('redirect_canonical', 'wpse50912_redirect_canonical',10,2) function wpse50912_redirect_canonical($redirect_url, $requested_url){ //Do stuff - determine if url is requesting album/track and check //If it is, check it is using the new structure. //Return the url you want in the address bar. return $redirect_url; }