Июл
23

WooCommerce: добавляем красивые ссылки

Author admin    Category Полезное     Tags

Ссылки в WooCommerceРаботая над сайтом интернет-магазина с использованием популярного WordPress плагина WooCommerce, обратили внимание на некоторые вещи.  Модуль, нужно сказать, очень мощный и интересный. В дальнейшем, думаю, опубликую по нему несколько статей, а сегодня расскажу о форматах ссылок для WooCommerce и как добавить в них окончание html. Пост небольшой, но полезный.

Итак, формат ссылок для интернет-магазина задается в том же разделе, что и для обычных записей блога — Permalinks (или Постоянные ссылки). В секции «Дополнительно» есть настройки префиксов адресов для категорий, меток товаров, а также их атрибутов.

Красивые ссылки в WooCommerce

Чуть ниже определяется постоянная ссылка на товар.

Формат ссылок в WooCommerce

Есть разные варианты:

  • /?product=sample-product — по-умолчанию с переменной;
  • /tovar/sample-product/ — с префиксом «tovar» для рунета;
  • /products/sample-product/ — с универсальным префиксом «products»;
  • /products/product-category/sample-product/ — с указанием категории товара;

Собственно, в строке «Произвольная база» на скриншоте выше вы видите каким будет префикс при выборе формата ссылки с категорией товара (последний вариант). На сайте это будет что-то вроде:

http://домен_магазина/products/green/product-name.html

Добавляем .html для ссылок WooCommerce

Однако можно сделать более красивые ссылки с приставкой html в конце URL’а. Как пишут некоторые оптимизаторы, это показывает поисковой системе, что открыта страница, а не каталог сайта. К тому же данный прием может пригодиться, если все остальные ссылки у вас также выводятся подобным образом — для постов это делается указанием /%category%/%postname%.html в разделе постоянных ссылок, для страниц.

Итак, чтобы добавить приставку .html для ссылок товаров в WooCommerce, нужно в файле функций functions.php разместить следующий код :

function wpse_178112_permastruct_html( $post_type, $args ) {
    if ( $post_type === 'product' )
        add_permastruct( $post_type, "{$args->rewrite['slug']
}/%$post_type%.html", $args->rewrite );
}
 
add_action( 'registered_post_type',
 'wpse_178112_permastruct_html', 10, 2 );

Если вы хотите сделать такой же формат ссылок для страниц категорий, то добавляете еще и такой код:

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 );

Важно! После этого вам следует вернуться в раздел Permalinks (Постоянные ссылки) админки WordPress и сохранить настройки дабы URL’ы обновились. Теперь ссылки магазина будут по типу:

  • http://домен_магазина/category/green.html — для категории товаров.
  • http://домен_магазина/products/green/product7.html — для конкретного товара.

Я пытался по аналогии с категориями сделать такую же фишку и для тегов, но, к сожалению, у меня ничего не вышло. То есть сама ссылка с html генерируется системой, но при попадании на страницу появляется ошибка 404.

Нужно ли добавлять .html для категорий? — вопрос спорный. С одной стороны, как я уже говорил выше, подобное окончание УРЛа соответствует странице сайта, не разделу. С другой, если вы на этой странице располагаете определенный seo текст и продвигаете категорию интернет-магазина, то ссылка с html выглядит привычнее.

  • http://домен_магазина/category/green/
  • http://домен_магазина/category/green.html

Лично я все же склоняюсь ко второму варианту, поскольку использую в работе плагин .html on PAGES, который добавляет html для страниц, в том числе и для каталога товаров WooCommerce. Поэтому логично, если и все остальные элементы (категории товаров) будут выглядеть так же. Единственный недостаток — не смог сделать такое же с тегами. Если отказываться от html для категорий, то у страниц будут ссылки со слэшем «/» в конце.



Прокомментировать

Новые шаблоны и статьи

Рубрики

Популярные шаблоны

Мы помогаем детям


KosynokBannerNetwork