Intereting Posts
Включите раздел на веб-сайт, который разработан в PHP-симфонии, хотя веб-сайт разработан с помощью шаблона после миграции новые загруженные изображения не будут отображаться Пользовательские поля для настраиваемого типа сообщений Создание разделов для типов сообщений Создание нового пункта меню Как мне отладить ошибку, которую вызывает плагин? выводить строки отладки в конец страницы Как я могу перенаправить мобильных пользователей на diff url, но также позволить им вернуться на полный сайт Добавьте сеанс или файл cookie, чтобы запомнить последнее местоположение меню Использовать различные таксономии в постоянных ссылках разных персонализированных почтовых сообщений? Программирование страницы с использованием $ wpdb и получение ошибки 404 Не GUI-способ заменить все http на https на сайте WordPress Пометка пользователей в WordPress Принудительное добавление меню администратора плагина в отдельное меню Как создать общедоступный профиль для авторов / участников / пользователей?

Как контролировать, какая категория будет выбрана для пули сообщения?

Я использую структуру permalink "/% category% /% postname% /".

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

Есть ли хороший и чистый способ контроля над тем, какая категория будет выбрана для сообщений?

Большое спасибо!

WordPress выбирает наименьший ID в качестве основной постоянной ссылки. Однако ВСЕ категории будут содержать ваш пост автоматически. Значение обоих этих:

  • Http: // YourSite / категория-A / пост-A
  • Http: // YourSite / категория-B / пост-A

… вернет ваше сообщение (учитывая, что пост-A относится как к категории-A, так и к категории-B) посредством перенаправления. Он не может перечислить их все на странице редактирования, извините. Но он будет уверен, что они доступны во всех категориях.

Конечно, get_permalink вернет вам неправильное.

http://codex.wordpress.org/Using_Permalinks#Using_.25category.25_with_multiple_categories_on_a_post

Теперь, чтобы переопределить поведение, посмотрите:

http://core.trac.wordpress.org/browser/tags/3.3.1/wp-includes/link-template.php#L71 , особенно немного ниже в строке 121. Он будет использовать $cats[0]->slug после сортировки по ID. Кажется, что он не может быть каким-либо образом подключен внутрь, поэтому либо выше, либо ниже.

Это билет, который собирался изменить способ работы http://core.trac.wordpress.org/ticket/18752, однако он помечен для будущей версии . Подпишитесь на билет, чтобы показать свой интерес, возможно, он внесет его в WordPress 3.5 позже в этом году.

Фильтр pre_post_link позволит вам переопределить постоянную ссылку. post_link .

В качестве альтернативы, get_the_category , вы должны взломать идентификаторы для сообщения (или удалить остальные, чтобы оставить только одно), но это должно произойти только при запросе постоянной ссылки.

 add_filter( 'pre_post_link', function( $permalink, $post ) { if ( strpos($permalink, '%category%') === false ) return; /* not interested */ add_filter( 'get_the_categories', 'wpse46860_prune_categories' ); return $permalink; }, null, 2 ); function wpse46860_prune_categories( $categories ) { /* run once */ remove_filter( 'get_the_categories', 'wpse46860_prune_categories' ); /* .. prune the categories to leave the one you need .. */ global $_hijack_post_id; return $categories; } 

Это взломать.

Дополнительной трудностью является получение post_ID для обрезания категорий против, фильтр get_the_categories не передает post_ID нам; используйте глобальное (грязное) или свойство класса (чистое).

Вы можете попробовать различные плагины permalink, такие как:

Вы всегда можете пойти с плагином. Hikari Категория Постоянная ссылка делает именно то, что вы ищете … без хлопот.

Если вы можете сохранить какую категорию вы хотите в качестве постоянной по умолчанию, тогда вы можете подключиться к функции get_permalink с помощью фильтра «pre_post_link» ….

Это также может помочь, посмотрите. http://shibashake.com/wordpress-theme/wordpress-permalink-add