Друг хочет, чтобы на его сайте WordPress были:
- Страницы выглядят как каталоги (чтобы включить косую черту в конце - www.domain.com/page/ )
- Сообщения блога должны выглядеть как файлы (расширение .html, без косой черты — www.domain.com/post.html< /а> )
- и Продукты, чтобы они выглядели как файлы (расширение .html - www.domain.com/products/product.html а> )
По умолчанию WordPress добавит косую черту для страниц и сообщений. Установка пользовательской структуры постоянной ссылки на /%postname%.html добавит расширение к сообщениям блога, но, конечно же, удалит завершающую косую черту со страниц.
Я могу переписать пост-тип продукта с помощью add_permastruct
function rr_permastruct_html( $post_type, $args ) {
// Works fine!
if ( $post_type === 'product' )
add_permastruct( $post_type, "{$args->rewrite['slug']}/%$post_type%.html", $args->rewrite );
// Worth a shot, but no...
//if ( $post_type === 'page' )
// add_permastruct( $post_type, "{$args->rewrite['slug']}/%$post_type%/", $args->rewrite );
}
Но когда дело доходит до добавления сообщений с расширением .html, а страницы по-прежнему содержат завершающую косую черту, я продолжаю натыкаться на стены.
Я не могу заставить его работать, используя .htaccess, потому что это влияет на оба. И мои попытки с $wp_rewrite через некоторое время ни к чему не привели:
function rr_rewrite_page_permalink() {
global $wp_rewrite;
if (!strpos($wp_rewrite->get_page_permastruct(), '.html')) {
$wp_rewrite->page_structure = $wp_rewrite->page_structure . '.html';
$wp_rewrite->set_permalink_structure( $wp_rewrite->page_structure );
}
$wp_rewrite->flush_rules();
}
add_action('init', 'rr_rewrite_page_permalink', -1);
Плагины постоянных ссылок производят такое же поведение без решения. Итак, возможно ли вообще иметь посты с расширениями .html и сохранять страницы с косой чертой в конце?
Спасибо