Введите часть искомого слова, названия или фразы...
↑ ↓
  1. Новые темы озаглавленные с маленькой буквы - удаляются без предупреждения!
  2. Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Настройка ЧПУ на WordPress сайте с WooCommerce

Тема в разделе "Вопросы, советы и доработки.", создана пользователем D&B, 6 мар 2014.

  1. Sowenak

    Sowenak

    Сообщения:
    5
    Симпатии:
    1
    Баллы:
    3
    Не знаю получится ли мне правильно выразиться, но я считаю себя еще новичком в wp и лучше я потрачу 5 дней на то, что бы найти правильное решение, или найду того, кто поможет мне найти это решение и научусь чему то новому, чем потратить целый день на бездумную работу.
     
    • Нравится Нравится x 1
  2. tuxfighter

    tuxfighter Местный

    Сообщения:
    1.511
    Симпатии:
    243
    Баллы:
    63
    я всегда знал, что просто работать ни кто не хочет......
     
    • Согласен Согласен x 2
    • Креативщик Креативщик x 1
  3. webspilka

    webspilka

    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    получилось у вас избавиться от /catalog/?
    а то я уже пол дня убил но так и не смог, то страница товара выдает 404, то в URL идет название товара дважды, нормального решения не найду.
     
  4. artemkomarov

    artemkomarov Местный

    Сообщения:
    423
    Симпатии:
    183
    Баллы:
    43
    В woo есть отличная встроенная функция массового редактирования товаров. Через настройку страницы делаете отображение скажем 100 товаров или сколько надо главное не переусердствуйте выборка нескольких тысяч может положить ваш хостинг :) затем Выделяете товары какие нужно изменить или присвоить новую категорию и просто делаете это. Статья в помощь https://nicola.blog/2015/04/21/bulk-edit-products/
     
    • Информативно Информативно x 2
  5. Sowenak

    Sowenak

    Сообщения:
    5
    Симпатии:
    1
    Баллы:
    3
    Спасибо за ответ, но я уже сам решил эту проблему таким способом, все осложнено было тем, что woocommecre криво встал и у меня меню настроек отображения не показывалось, но когда я про него узнал, тогда выкрутил отображение по 200 штук и проблема решилась. Конечно это все ровно костыль и так работать не должно, но другого решения я не нашел.
     
    • Креативщик Креативщик x 1
  6. sergiocharm

    sergiocharm

    Сообщения:
    83
    Симпатии:
    1
    Баллы:
    8
    Ребята подсказывайте как решить проблему

    Урл Товара
    http://septikperm.ru/tovar/topas/topas-4

    Хлебные крошки
    На главную / Товары / Септики Топас для загородного дома / Топас 4

    Вроде все логично, главная / в каталоге - товары / есть категория - септик топас / и в ней товар - Топас 4


    Перехожу в категорию и урл сразу же становится УРЛ
    http://septikperm.ru/shop/topas

    Хлебные крошки
    На главную / Товары / Септики Топас для загородного дома

    А должно быть так http://septikperm.ru/tovar/topas

    Настройки:
    База категорий товара - shop
    Произвольная база - /tovar/%product_cat%
    Страница каталога имеет такой урл - http://septikperm.ru/tovar.html

    Проставляешь в "База категорий товара" tovar тогда рубрики не работают.

    Заманался уже. Че делать есть решение?
     
    Последнее редактирование: 4 мар 2017
  7. D&B

    D&B Администратор Команда форума Местный

    Сообщения:
    3.673
    Симпатии:
    872
    Баллы:
    113
    Есть
     
  8. sergiocharm

    sergiocharm

    Сообщения:
    83
    Симпатии:
    1
    Баллы:
    8
    Это я видел. А так чтобы бесплатно?
     
  9. D&B

    D&B Администратор Команда форума Местный

    Сообщения:
    3.673
    Симпатии:
    872
    Баллы:
    113
    Бесплатно тут кто нибудь ищет примерно раз в неделю. Положительных результатов пока не видел.
     
    • Информативно Информативно x 1
  10. qwer

    qwer Местный

    Сообщения:
    214
    Симпатии:
    132
    Баллы:
    43
    Разрабатывала сайт на WP и столкнулась с реальной проблемой, над которой билась несколько дней.
    Предыстория:
    На работе у нас развёрнут свой "dev" сервер с помощью которого разрабатываются сайты.
    Забыла сразу настроить постоянные ссылки, поэтому занялась этим когда большая часть функционала сайта уже была реализована.

    Что за проблема у меня возникла:
    При настройки ЧПУ на произвольные ссылки: /%category%/%postname%/ у меня постоянно выбивалась ошибка 404 когда был переход на любую страницу с "правильным названием", при этом совершенно не важно какие именно я прописывала и /%category%/%postname%.html и просто /%postname%/.

    Облазив интернет, все решения которые попадались - мне не помогали. А бедный .htaccess был редактирован больше обычного. Плагин Cyr-to-lat стоял и вот вроде всё должно работать. Но раз за разом я видела только ошибку 404.

    Я нашла решение этой проблемы не сразу. Связано это с настройками нашего самодельного сервера.
    В нём отсутствовал определенный модуль, который и отвечает за адекватную настройку ЧПУ. Это может быть полезным тем, кто так же работал/работает или будет работать на "своём" сервачке, вместо локального компьютера.

    Вот решение которое сработало:

    1. Установка плагина Cyr-to-lat, по поиску в админке сможете выйти на него и добавить на сайт.
    2. Права на .htaccess 664
    Содержимое .htaccess: (Добавлять не обязательно, если у вас установлены нужные права на этот файл WP сам подключит эти правила)
    Код:
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    3. КОРЕНЬ ЗЛА
    Если ваш веб-сервер (как и в моём случае) Apache, то скорее всего отсутствует модуль mod_rewrite. Без которого пиши/обновляй/перезаливай файл .htaccess — работать правила НЕ БУДУТ.
    Так же, возможно модуль есть, а вот .htaccess у вас не работает.
    Проблем всего 2:

    1) Не работает файл .htaccess
    2) Не загружен модуль Apache — mod_rewrite

    В первом случае необходимо проверить в настройках Apache (httpd.conf) следующие директивы AccessFileName и AllowOverride.
    Для AccessFileName значение должно быть .htaccess (AccessFileName .htaccess).
    Для AllowOverride (действует внутри <directory>) значение должно быть All (AllowOverride All).

    Во втором случае проверяем прописан ли в настройках mod_rewrite.
    В секции # ### Loaded Modules должна быть строка:

    Код:
    LoadModule rewrite_module [путь к модулю]/mod_rewrite.so
    
    В секции # ### Added Modules должно быть:

    Код:
    AddModule mod_rewrite.c
    Если у вас нет прав для работы с Apache, можете написать своему хостинг провайдеру или системному администратору, который подключит всё необходимое.

    Ну вот, теперь после проделанных действий, всё точно заработает.
    (Почему продолжился поиск проблемы в серверной части: был перенос на домашнюю машину, с сервером Open Server - ЧПУ настроились сразу и адекватно)

    Если кто-нибудь столкнется с подобной проблемой, действия которые я описала должны будут помочь.
    А если вы нашли другие способы решения подобной проблемы, отпишитесь, очень интересно будет почитать.

    Всем спасибо за внимание к длиннопосту. Надеюсь, сочтете информацию полезной.
     
    • Нравится Нравится x 2
    • Информативно Информативно x 1
    • Оптимист Оптимист x 1
  11. Zoten

    Zoten

    Сообщения:
    59
    Симпатии:
    11
    Баллы:
    8
    На всякий случай сюда тоже добавлю...
    Если вы хотите, чтобы у вас базой для товаров и категорий служила единый путь, например:
    http://domain.ru/shop - основная страница магазина
    http://domain.ru/shop/mycategory - страница категории
    http://domain.ru/shop/mycategory/myproduct - страница товара
    добавьте код ниже (я воткнул в код своего плагина для сайта), тестировал на Nginx+PHP-FPM

    PHP:
    function devvn_product_category_base_same_shop_base$flash false ){
        
    $terms get_terms(array(
            
    'taxonomy' => 'product_cat',
            
    'post_type' => 'product',
            
    'hide_empty' => false,
        ));
        if (
    $terms && !is_wp_error($terms)) {
            
    $siteurl esc_url(home_url('/'));
            foreach (
    $terms as $term) {
                
    $term_slug $term->slug;
                
    $baseterm str_replace($siteurl''get_term_link($term->term_id'product_cat'));

                
    add_rewrite_rule($baseterm '?$','index.php?product_cat=' $term_slug,'top');
                
    add_rewrite_rule($baseterm 'page/([0-9]{1,})/?$''index.php?product_cat=' $term_slug '&paged=$matches[1]','top');
                
    add_rewrite_rule($baseterm '(?:feed/)?(feed|rdf|rss|rss2|atom)/?$''index.php?product_cat=' $term_slug '&feed=$matches[1]','top');

            }
        }
        if (
    $flash == true)
            
    flush_rewrite_rules(false);
    }
    add_filter'init''devvn_product_category_base_same_shop_base');
    add_action'create_term''devvn_product_cat_same_shop_edit_success'10);
    function 
    devvn_product_cat_same_shop_edit_success$term_id$taxonomy ) {
        
    devvn_product_category_base_same_shop_base(true);
    }
     
  12. artemkomarov

    artemkomarov Местный

    Сообщения:
    423
    Симпатии:
    183
    Баллы:
    43
    а разве по умолчанию оно не так?
     
  13. Zoten

    Zoten

    Сообщения:
    59
    Симпатии:
    11
    Баллы:
    8
    Неа! По умолчанию, если вы пропишете одинаковые базы категориям товара и товарам, а также если у страницы магазина будет путь как и у базы - получите 404.
    Попробуйте)
     
  14. artemkomarov

    artemkomarov Местный

    Сообщения:
    423
    Симпатии:
    183
    Баллы:
    43
    Я про то что ссылки настраиваются в настройках для этого не нужен кастомный код. И среди уже созданных опций есть описаная вами выше структура магазин/категория/подкатегория/товар
     
    • Согласен Согласен x 1
  15. Zoten

    Zoten

    Сообщения:
    59
    Симпатии:
    11
    Баллы:
    8
    Допустим вы создали категорию товара, она будет доступна по ссылке:
    http://domain.ru/product-category/mycategory,
    а товар привязанный к этой категории будет доступен по ссылке:
    http://domain.ru/shop/mycategory/myproduct

    Вам например нужно чтобы страница категории была доступна по ссылке:
    http://domain.ru/shop/mycategory,
    вы идёте в настройки постоянных ссылок и там меняете базу категорий с "product-category" на "shop".
    После этого вы получаете 404 или тут
    http://domain.ru/shop/mycategory,
    или тут
    http://domain.ru/shop/mycategory/myproduct (точно не помню что отваливается).
    При этом у вас есть ещё страница магазина http://domain.ru/shop
     
  16. intmprof

    intmprof

    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    А куда этот код нужно прописать?
     
  17. Zoten

    Zoten

    Сообщения:
    59
    Симпатии:
    11
    Баллы:
    8
    Оформил как плагин, сейчас некогда проверить - но работать должен! После активации плагина, не забудьте товарам и категориям задать одинаковую базу.
     

    Вложения:

  18. intmprof

    intmprof

    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Поставил. Работает.
    Но покопался и понял, что этот код просто можно вставить в файл functions.php в используемой теме.
     
    Последнее редактирование: 26 авг 2017
  19. tuxfighter

    tuxfighter Местный

    Сообщения:
    1.511
    Симпатии:
    243
    Баллы:
    63
    код практически любого плагина можно вставить в functions.php и он будет работать.
    плагин тем и отличается, что он работает не зависимо от используемой темы.
    учите мат. часть
     
  20. intmprof

    intmprof

    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    я как бы маркетолог.
    Мне до мат. части сайтов далеко.
    Иначе бы не сидел и не спрашивал.
    Когда поставил плагином выдавало наложение или что то такое, поставил когда в файл перестало сообщение о наложении выходить в Query Monitor.