Красивые ссылки в WooCommerce (добавляем .html)
Я тут сейчас работаю над сайтом интернет-магазина с использованием популярного WordPress плагина WooCommerce. Модуль, нужно сказать, очень мощный и интересный. В блоге уже было по нему несколько статей — об атрибутах товаров, добавлении в корзину и т.д. Сегодня расскажу о форматах ссылок для WooCommerce и как добавить в них окончание html. Пост небольшой, но полезный.
Итак, формат ссылок для интернет-магазина задается в том же разделе, что и для обычных записей блога — Permalinks (или Постоянные ссылки). В секции «Дополнительно» есть настройки префиксов адресов для категорий, меток товаров, а также их атрибутов.
Чуть ниже определяется постоянная ссылка на товар.
Есть разные варианты:
- /?product=sample-product — по-умолчанию с переменной;
- /tovar/sample-product/ — с префиксом «tovar» для рунета;
- /products/sample-product/ — с универсальным префиксом «products»;
- /products/product-category/sample-product/ — с указанием категории товара;
Собственно, в строке «Произвольная база» на скриншоте выше вы видите каким будет префикс при выборе формата ссылки с категорией товара (последний вариант). На сайте это будет что-то вроде:
http://домен_магазина/products/green/product-name
Нельзя сказать, что ЧПУ вещь прямо таки необходимая, но она сделает ваш проект более «дружелюбным». Это все равно что настраивать отправку в Woocommerce PDF инвойса — можно обойтись и без него, но ведь так гораздо удобнее.
Добавляем .html для ссылок WooCommerce
Вы можете сделать более красивые URL адреса в магазине. Как пишут некоторые оптимизаторы, это показывает поисковой системе, что открыта страница, а не каталог сайта. К тому же данный прием может пригодиться, если все остальные ссылки у вас также выводятся подобным образом:
- для постов это делается указанием /%category%/%postname%.html в разделе «Постоянные ссылки»;
- про изменение URL страниц следует почитать в отдельной статье (там есть соответствующие плагины)
Итак, чтобы добавить приставку .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 для категорий, то у страниц будут ссылки со слэшем «/» в конце.
А вы что думаете про добавление html к товарам и категориям?
комментариев 14 к статье “Красивые ссылки в WooCommerce (добавляем .html)”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Як сховати відсутні товари в Woocommerce шорткодах та схожих товарах
- Сервіс AdMaven + плагін для монетизації трафіка на WordPress сайтах
- Плагіни для створення стрічки новин з біжучим рядком в WordPress
- Як змінити розміщення кнопки оформлення замовлення в WooCommerce
- Плагін WHWS Display In Stock Products First – відображення товарів в наявності першими
- Підписка MonsterONE: чи варто використовувати цей сервіс у 2023 році? (+5 продуктів, які треба скачати в першу чергу)
- Онлайн генератор ссылок на мессенджеры для WordPress и не только
- WooCommerce (46)
- Безопасность (12)
- Видео (6)
- Виджеты (28)
- Возможности (141)
- Вопрос-ответ (6)
- Начинающим (52)
- Новости (46)
- Оптимизация (23)
- Плагины (246)
- Сервисы (87)
- Хаки и секреты (87)
- Шаблоны (45)
- Дизайн Мания - о веб-дизайне и не только.
- Tod's Blog - все про заработок онлайн.
- Вебдванольные заметки - обзоры веб-сервисов.
- Советы по выбору холодильника LG с технологией No Frost
- Зачем нужны Wi-Fi ретрансляторы и как выбрать подходящую модель
- Введение в онлайн-казино Slotor777: многообразие игр и привлекательные бонусы
- Необходимость использования облачного хранилища в наше время, что важно и как выгодно?
- Спрощення процесу звітності за допомогою програми BAS Бухгалтерія
- Технологія підключення інтернету GPON та її переваги
- За що гравці найбільше цінують Lineage 2
- Для каких проектов нужна аренда виртуального сервера и что такое VPS
А есть ли результаты от этого дела? Я имею в виду — сравнить некие численные характеристики (позиции в выдаче, кол-во проиндексированных страниц и т. п.) до и после добавления .html к ссылкам?
Александр, чтобы получить некие численные характеристики нужно сравнивать как минимум сотню сайтов, думаю))
Помогите, проблема в следующем: в админке время от времени внеззапно стают белыми буквы в редакторе, предпочтительно это случается с жырным текстом, и разметками h2, h3 и тд..сделал скриншот http://www.ex.ua/653436768076 (не спам, нету формы отпаавки фото) обычно только в хроме, но менять браузер из за этого не хотелось бы. Плагины отключал, не помогает, после перезагрузки компьютера все норм, но иногда проблема возвращается. плагины в вордперс тоже пробовал отключать.
Дмитрий, странный глюк, конечно. Если смотреть текст в режиме HTML у него точно нет никакого лишнего оформления/стилей? Второе предположение — может быть где-то в стилях темы прописан белый цвет и он почему-то применяется для редактора. В целом, сложно сказать почему так. Попробуйте поставить другой текстовый редактор TinyMCE Advanced или подобный плагин.
Пока под вопросом, стоит ли на своем интернет-магазине менять ссылки, попробую поменять на блоге
Спасибо за статью.!
В файле функций functions.php разместил вышеописанный код, все заработало (добавляется html к каждой старице товара) единственная проблема в том, что в конце (после .html) добавляется и слэш (/). Подскажите, пожалуйста как его убрать?
Спасибо.
Ригоберто, давно дело было, но судя по последним предложениям в статье, пришлось внедрять оба хака дабы и категории, и товары были с html. Если после всего (/) остается, то я бы установил модуль Yoast SEO там вроде была опция убирать слэш.
Скажите, а как добиться у ссылки следующей структуры site.ru/iphone/iphone-5.html , где iphone — категория товара, ну и iphone-5 — сам товар, без лишних category shop и т.д. и т.п.?
Александр, избавиться от «базы» магазина у меня лично не получилось. Может есть какой-то подходящий модуль, но я решил не рисковать и оставить все, как есть. Все же функциональность магазина посолжнее чем посты блога, и данный хак может потом где-то вылезти. Хотя, возможно, с htaccess задача решается не так и сложно.
В настройках домена убери в конце слеш и должно появиться счастье
Добрый день.
В какое место блога вставлять код?
Андрей, код вставляется в файл functions.php.
Автору респект, но слэш убрать не могу после .html
Евгений, странно, у меня слэш практически нигде не появляется, хотя есть, конечно, страницы, где функция не работает — навигация, фильтры и еще что-то. Полностью магазин на html перевести не удалось, увы.