Есть ли способ добавить .html
расширение для пользовательских типов сообщений без плагина ?
Для сообщений я могу использовать /%postname.html
в настройках Постоянная ссылка
Для страниц я могу использовать:
add_action('init', 'change_page_permalink', -1);
function change_page_permalink() {
global $wp_rewrite;
if ( strstr($wp_rewrite->get_page_permastruct(), '.html') != '.html' )
$wp_rewrite->page_structure = $wp_rewrite->page_structure . '.html';
}
Для пользовательских типов сообщений ???
Есть ли какой-либо фрагмент кода, похожий на приведенный выше, который позволяет мне изменить или добавить .html
URL-адрес пользовательского типа сообщения?
custom-post-types
permalinks
url-rewriting
urls
user983248
источник
источник
function post-type_permalink
скину ошибку. Если вы не получили эту ошибку, значит, у вас что-то не так с настройками отладки. Также, пожалуйста, переделайте свой вопрос с правильными намерениями в строках. Спасибо./$postname.html
для сообщений, как я могу использовать то же самое для пользовательских типов сообщений.-
не работает в именах функций ...Ответы:
Это похоже на работу:
Создайте правила перезаписи, как
post-type/post-name.html
. Вы можете использовать массивы для создания правил только для некоторого набора типов записей вместо того, чтобы делать это для всех них.Отформатируйте новую структуру постоянных ссылок для этих типов записей.
А затем прекратите перенаправление канонических URL-адресов, чтобы удалить косую черту. Это может потребовать дополнительной работы, так как вы, вероятно, захотите сохранить перенаправление в большинстве случаев.
Как уже говорили здесь другие, после выполнения вышесказанного вам необходимо очистить правила, и это возможно, посетив
options-permalink.php
страницу администратора вDashboard -> Settings -> Permalinks
.источник
wpse_59024_
(ID вопроса), чтобы избежать конфликтов копирования / вставки;). , , И имеет дополнительное преимущество, зная, к какому ответу относится этот код в нашей библиотеке фрагментов. , , , , +1 Спот на!post_type_link
фильтрДля этого вы можете добавить правило перезаписи, которое заменяет встроенные постоянные ссылки, например, для пользовательского типа записи "product" ...
(Не забудьте очистить свои правила, либо повторно сохранив свои постоянные ссылки, либо используя
flush_rules
способ @toscho примечания выше).Предостережения
the_permalink()
бы использовали это, поэтому вам, возможно, придется добавить фильтр дляpost_link
перехвата этих ссылок. Вы также можете добавитьredirect_canonical
фильтр, чтобы перенаправлять постоянные ссылки по умолчанию, чтобы / product / foo и / product / foo / перенаправляли в /product/foo.html.источник
Если вы предпочитаете, чтобы плагин WordPress выполнял за вас эту работу, посмотрите Постоянные ссылки на пользовательский тип поста в хранилище плагинов WordPress. Протестировано на WordPress 3.4.1 и работает отлично.
После активации плагина просто перейдите в Dashboard -> Settings -> Permalinks. Вы можете добавить определенные изменения для каждого зарегистрированного пользовательского типа сообщения.
источник
flush_rules()
должен вызываться при де / активации только потому, что он очень медленный. Вы можете проверить,$GLOBALS['wp_rewrite']->rules
если правила уже известны.