Вопрос или проблема
Недавно я добавил этот код на свой сайт WordPress, чтобы добавить .html для своей категории продуктов. Он работал нормально с категорией (http://mywebsite.com/parent-category/product-category.html), но когда я нажал на пагинацию, ссылка изменилась на (http://mywebsite.com/parent-category/product-category.html/page/2)
Это код, который я добавил в function.php на своем сайте
function wpse_178112_category_permastruct_html( $taxonomy, $object_type, $args ) {
if ( $taxonomy === 'product_cat' )
add_permastruct( $taxonomy, "{$args['rewrite']['slug']}/%$taxonomy%.html", $args['rewrite'] );
}
add_action( 'registered_taxonomy', 'wpse_178112_category_permastruct_html', 10, 3 );
Пожалуйста, помогите, я только новичок в WordPress 😔.
Спасибо!!!!!!!!!!
Добавление .html
ничего не даст для SEO — на самом деле, это скорее приведет к проблемам, чем к чему-либо хорошему. WordPress (и, следовательно, WooCommerce) не используют HTML-файлы для отображения, это PHP-файлы, и поэтому, если вы перейдете на страницу, такую как вход в систему, по умолчанию это что-то вроде example.com/wp-login.php
. Из сотен или тысяч сайтов на WordPress, с которыми я работал за время работы в WooCommerce, ни одному из них не потребовалось добавлять .html
к странице по какой-либо причине, поэтому я бы настоятельно рекомендовал этого не делать.
Ответ или решение
Проблема, с которой вы столкнулись, связана с добавлением ".html" к вашему пермалинке для категории товаров в WooCommerce. Ваша основная проблема заключается в пагинации — когда вы пытаетесь перейти на вторую страницу, URL изменяется на http://mywebsite.com/parent-category/product-category.html/page/2
, что не является корректным форматом для ваших нужд. Давайте разберемся с этим более подробно.
1.Анализ кода и его воздействие
Вы добавили следующий код в файл functions.php вашего сайта:
function wpse_178112_category_permastruct_html( $taxonomy, $object_type, $args ) {
if ( $taxonomy === 'product_cat' )
add_permastruct( $taxonomy, "{$args['rewrite']['slug']}/%$taxonomy%.html", $args['rewrite'] );
}
add_action( 'registered_taxonomy', 'wpse_178112_category_permastruct_html', 10, 3 );
Этот код корректно добавляет ".html" к категории вашего продукта, но он не учитывает сценарий пагинации. Стандартное поведение WordPress предполагает использование PostgreSQL-формата для пагинации, который вы изменяете, добавляя расширение ".html", тем самым нарушая структуру URL.
2. Решение проблемы с пагинацией
Для того чтобы исправить ситуацию с пагинацией, вам нужно изменить структуру пермалинков таким образом, чтобы пагинация работала корректно. Один из вариантов — использовать регулярные выражения для корректной обработки пагинационных ссылок.
Вы можете попробовать следующий код для исправления пагинации:
function wpse_custom_pagination_rewrite() {
add_rewrite_rule(
'^parent-category/product-category.html/page/([0-9]+)/?$',
'index.php?product_cat=parent-category/product-category&paged=$matches[1]',
'top'
);
}
add_action('init', 'wpse_custom_pagination_rewrite');
Это добавит правило для перезаписи, которое правильно обрабатывает запросы, когда к URL добавляется "/page/N", где N — номер страницы.
3. Обновление пермалинков
После внесения изменений в файл functions.php, вам нужно обновить настройки пермалинков. Для этого выполните следующие действия:
- Перейдите в «Настройки» → «Постоянные ссылки» в вашей административной панели.
- Нажмите «Сохранить изменения» без изменения текущих настроек. Это обновит правила перезаписи.
4. SEO-факторы
Как упоминалось в вашем вопросе, добавление ".html" не влияет на SEO-параметры сайта, и зачастую такое решение может вызвать проблемы, как это видно в вашей ситуации. WordPress и WooCommerce создают гибкую структуру URL, которая оптимизирована для SEO, даже без дополнительного расширения.
Рекомендации
- Вовлечение профессионала для выполнения сложных задач может быть полезным на начальных этапах работы с WordPress.
- Рассмотрите возможность использования стандартных функций без модификации пермалинков для оптимизации SEO и избежания возможных ошибок.
Заключение
Внесенные изменения помогут решить проблемы с пагинацией на основе ваших требований к структуре URL. Однако, напомним, что использование ".html" может быть избыточным в среде WordPress и привести к потенциальным проблемам в будущем. Надеемся, что данная информация была полезной и облегчит вашу работу с WooCommerce.