Как правильно настроить ЧПУ Woocommerce для товаров и блога?
1) Сейчас ссылки выглядят так:
Когда находимся в категории, все ок: site.ru/catalog/categoria
Когда переходим в товар, то урл становится такой site/product/nazvanie-tovara/
А нужно сделать такой: site.ru/catalog/categoria/nazvanie-tovara/
Возможно это вообще? объясните популярно, как это сделать))
2) Так же в рубриках нужно настроить чпу.
Если рубрика называется "статьи", чтобы было: site.ru/stati/nazvanie-stati
Если рубрика называется "новости", чтобы было: site.ru/novosti/nazvanie-stati
Как это можно сделать?
3) В хлебных крошках сейчас так: главная/название категории, а нужно, главная/каталог/название категории.
Заранее благодарю за подробные развернутые ответы:)
Олег, у товара может быть сколько угодно категорий, получается неоднозначность. В качестве slug для категории будет использоваться первая в списке. При этом когда сменятся категории у товара, слетит и "красивый" урл.
zorca, у товара может быть сколько угодно категорий? что это значит не понимаю((( на примере объясните пожалуйста. на других cms это прекрасно работает. в чем на вп сложность?))
Олег, Вы прикалываетесь? Вам же скриншот показали. Допустим, у вас есть товар Х, которому одновременно назначены 2 или более категории. Как должен выглядеть УРЛ? Какая из 2х или более категорий должна присутствовать в УРЛ?
Игорь Воротнёв, вы выражаетесь в не понятной для меня форме просто))
По ходу речь про то, что 1 товар может выводиться одновременно в нескольких категориях)) Согласитесь, так более понятно? ;-)
Мне вывод товаров одновременно в нескольких категориях не требуется.
вы выражаетесь в не понятной для меня форме просто))
Вы даже не представляете, каких трудов нам стоит уловить суть ваших вопросов. Я знаю ответ на ваш вопрос, знаю как сделать на уровне кода. Но исходя из ваших формулировок и ответов на советы, я понимаю что писать ответ нет смысла - вы его не поймете, потому что вы не разработчик. И даже готовое регулярное выражение для preg_match в add_rewrite_rule вас не спасет. Ставлю соточку, что последнее предложение вы не поняли, от слова совсем :)
Игорь Воротнёв, знать и уметь объяснить начинающему пошагово простыми словами, еще лучше со скриншотами - это 2 большие разницы)) попробуйте, я верю в вас :)
зы я не понимаю почему это не сделано по умолчанию из коробки, это же так логично))
Олег, Дело не в объяснении, а в вашей реакции. Когда вы что-то не понимаете (хотя вас достаточно детально направили скриншотами в правильном направлении), вы накидываетесь на людей, которые БЕСПЛАТНО тратят свое время на вас. Вам не нужны советы и помощь. Вам нужно "сделайте все за меня". Так это не работает. zorca дал вам инструкцию. Всю остальную информацию вы можете найти в официальной документации WooCommerce.
Игорь Воротнёв, не достаточно детально направили)) вы хотите сказать, что я задал ппц сложный вопрос, на который невозможно за пару минут написать готовый ответ? так, чтоли?))) создаётся впечатление, что некоторым проще писать 10+ комментариев с намеками, нежели написать 1 сообщение с готовым решением. Я этого искренне не понимаю((((
На второй вопрос ответить можно было одной строчкой/картинкой. к счастью на 1 вопрос я получил ответ. котрый привел меня к нужному результату)) уже хорошо)
Если у меня есть желание помогать, то не важно платно это или бесплатно, если я знаю ответ и написать его займёт у меня несколько минут:) Все когда-то были новичками) это нормально, что кто-то с чем-то может разбираться не так быстро и легко, как вы:)
Олег, вы задали ряд вопросов, понимание ответов на которые требуют от вас определенного уровня знаний и понимания. Его у вас нет, отсюда и проблема. Десять комментариев мы пишем чтобы заставить вас включить собственную голову. Мы следуем старой мудрости - дай человеку рыбу, и он сегодня не будет голоден, научи человека ловить рыбу - и он не будет голоден никогда. Иначе вы после обеда придете с очередной пачкой аналогичных вопросов, вечером снова, а завтра все по новой.
это нормально, что кто-то с чем-то может разбираться не так быстро и легко, как вы:)
Понимаете в чем беда... Я лично не вижу с вашей стороны вообще попыток разобраться. Вам говорят "измените slug страницы shop на category", а вы спрашиваете "а как это? а что это?" Ну неужели сложно написать в гугле "как изменить slug страницы wordpress". Вас же в гугле не забанили, правда?
Олег, чтобы это заработало, у вас должна существовать страница со слагом catalog, и в настройках WooCommerce она должна быть настроена как страница магазина. По умолчанию при установке WooCommerce он создает такую страницу, и называет ее Shop. Отсюда и наши предложения переименовать эту страницу в каталог.
Игорь Воротнёв, что было по умолчанию я не помню. Сейчас есть страница site.ru/catalog/
"у вас должна существовать страница со слагом catalog" - это она?
"и в настройках WooCommerce она должна быть настроена как страница магазина"
Там настроено, причем уже давно. однако, не работает почему-то...(((
Олег, а теперь вспомните, что мы вам писали по поводу "невозможности распознать категории если нет category base" :) Вот теперь вы все подготовили как надо, но уперлись именно в ограничение архитектуры WordPress. И ответ на это содержится в том обсуждении.
Олег, а вот тут самое интересное, из-за чего весь сыр-бор. Технически - можно. Но это уже весьма нетривиальная задачка, на программном уровне, которую вы сами не осилите, а делать вам готовое решение бесплатно на Тостере никто не будет - слишком много работы. Это уже задача для программиста. Есть вариант поискать готовый плагин, но и его возможно придется напильником дорабатывать. Поэтому, возможно разумнее от этой затеи отказаться. Ну или нанять кого-нибудь решить ее для вас.
Игорь Воротнёв, вот сразу возникает вопрос, для чего было тратить свое и мое время на кучу советов по тем или иным настройкам cms, если просто правильными "настройками в админке" это сделать нельзя и нужно "долго и сложно программировать"?
Олег, так мы ж вам как бы изначально на это намекнули. Это раз. Два - Тостер вообще-то как раз для "программировать". У вас же в подписи стоит "фронтенд-РАЗРАБОТЧИК". Программировать для разработчика - нормальное дело.
намеками обычно общаются девушки, не знал, что для программистов это тоже норма)))
Программисты еще умеют в логику, сарказм и иронию.
По поводу третьего вопроса - вы ведь понимаете, что хлебные крошки откуда-то берут структурированные данные, и всего лишь выводят вам ссылки основываясь на этих СТРУКТУРИРОВАННЫХ данных. Данные берутся из WP_Query, а он в свою очередь формируется из парсинга пермалинков с помощью WP_Rewrite. У вас ситуация, когда WP_Rewrite не способен определить, что же показывать, какие аргументы передать в WP_Query. Поэтому да, без "программировать" не получится, если вы хотите изменить стандартное поведение. Не все можно сделать галочками в админке. Иногда нужно закатать рукава и лезть в код. Поэтому программисты и существуют.
это тоже стандартными средствами нельзя настроить и нужно "программировать"?
Стандартными средствами настроить можно стандартное поведение. Один из вариантов стандартного поведения. Если вам нужно НЕстандартное поведение - нужно его запрограммировать. В этом и состоит суть работы программиста.
WordPress даёт возможность указать для постоянных ссылок и архивов собственную структуру. Это может придать вашим ссылкам эстетичность, удобство использования и обеспечить совместимость в будущем. Можно просмотреть полный список доступных тегов, а для начала — несколько примеров.
со 2 пунктом разобрались) спасибо)
по 1. у меня вот так, если написать shop, то все работает, но мне надо catalog и если пишу его, то не работает должным образом почему-то(( надеюсь на вашу подсказку
по 3. в хлебных крошках не хватает только вывода каталога, неужели без плагинов нет возможности его вывести? других вопросов по крошкам пока не имею)
Олег, крошки можно вывести как хочется, достаточно написать свою реализацию вывода. В вашем случае с плагином бы разобраться. По поводу смены catalog на shop: просто смените slug страницы магазина и все. После смены slug нужно обязательно сохранить/обновить постоянные ссылки.
zorca, с плагином разобраться сложновато из-за отсутствия русского описания с примерами.
"slug страницы магазина" это где?)
"По поводу смены catalog на shop" Мне нужно именно catalog сделать
Поменял везде на catalog
и сейчас при открытии: каталог/категория пишет, что страница не найдена, зато при открытии товара, урл такой, как мне нужно: каталог/категория/товар. и, кстати, в хлебных крошках сейчас "каталог" появился:)
Олег, Все верно, категорию нужно как-то идентифицировать, без ключевого слова типа catalog/category не получится обойтись. Отказ от идентификации выозвет пробелмы потом. Если все таки решили отказаться от идентификации, то можно сделать как тут например написано: https://timersys.com/remove-product-category-slug-...
zorca, что значит отказ от идентификации, что вы имеете в виду? у категории же остается ее название и оно есть в урле. Почему система не может найти страницу?)
zorca, откуда мне знать))) другие же движки отличают каким-то образом и там это прекрасно работает)))
То что мне нужно сделать не возможно реализовать на вордпресс или как??
Это же минимально, критически необходимые знания чтобы хоть что-то делать с WP! Slug - это уникальное короткое название страницы, которое используется в УРЛ. Заходите в редактирование страницы, сразу под заголовком будет УРЛ и кнопка "редактировать". Нажав ее вы сможете изменить этот слаг. Вам нужно вместо shop написать catalog и сохранить изменения.
откуда мне знать)))
Вам нужно просто начать слушать людей и читать документацию. Учиться самостоятельно гуглить, разбираться в тонкостях. Фокус в том, что у разных платформ по разному реализован "роутинг". Что такое роутинг, я позволю вам самостоятельно нагуглить и почитать. В WordPress он реализоват через rewrite rules, которые в свою очередь реализованы через регулярные выражения. Это особенность конкретной реализации в конкретном движке. Поэтому эта реализация не может работать так, как она работает, например, в Laravel. Там роутинг устроен совершенно по-другому.
Так вот в реализации WP схема работает по принципу "тип_данных/конкретный_кусок_данных", или "category/some-category-name". Регулярное выражение отлавливает сначала "тип_данных" (то есть, определяет, что это категория), а потому уже запрашивает конкретный экзепляр из этого типа данных (то есть, берет из базы именно категорию с таким названием). Если избавиться от первого фрагмента, WP не будет понимать, что ему нужно взять их БД. Точнее он "поймет", применив просто другое правило, которое будет правилом для вывода страниц. В результате на выводе вы получите не то, что ожидаете.