Добавил .html к постоянной ссылке Woocommerce, но пагинация не работает!

Вопрос или проблема

Недавно я добавил этот код на свой сайт 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, вам нужно обновить настройки пермалинков. Для этого выполните следующие действия:

  1. Перейдите в «Настройки» → «Постоянные ссылки» в вашей административной панели.
  2. Нажмите «Сохранить изменения» без изменения текущих настроек. Это обновит правила перезаписи.

4. SEO-факторы

Как упоминалось в вашем вопросе, добавление ".html" не влияет на SEO-параметры сайта, и зачастую такое решение может вызвать проблемы, как это видно в вашей ситуации. WordPress и WooCommerce создают гибкую структуру URL, которая оптимизирована для SEO, даже без дополнительного расширения.

Рекомендации

  • Вовлечение профессионала для выполнения сложных задач может быть полезным на начальных этапах работы с WordPress.
  • Рассмотрите возможность использования стандартных функций без модификации пермалинков для оптимизации SEO и избежания возможных ошибок.

Заключение

Внесенные изменения помогут решить проблемы с пагинацией на основе ваших требований к структуре URL. Однако, напомним, что использование ".html" может быть избыточным в среде WordPress и привести к потенциальным проблемам в будущем. Надеемся, что данная информация была полезной и облегчит вашу работу с WooCommerce.

Оцените материал
Добавить комментарий

Капча загружается...