Ответы пользователя по тегу WordPress
  • На какой cms начать верстать магазин лучше всего?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Можно разобрать на цитаты из интернетов.... Да и опыта у тебя нет - признавайся, в лучшем случае правки делал какие исходя из текста.

    Joomla мертва и никому не нужна.

    Wordpress это более 60% рынка CMS и 30% от всех сайтов на планете. Выбор очевиден. Про костыли выброси эти фразы в мусорку и никому не говори. У него есть свои минусы но к тому времени когда ты их осознаешь уже будет понимание что с этим делать. И если будешь отталкивать от того как малыми силами сделать сайт на плагинах останешься без работы и без денег. Вордпрес это максимальный профит за короткий срок а если не умеешь готовить то это уже другой вопрос.

    Для начала разберись с пониманием что такое "верстать" и что это не связано с CMS. Разделяй процессы. Сначала верстать потом натягивать.
    Ответ написан
    4 комментария
  • Как вывести страницы по метке?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Ты пытаешь получить посты из global query это неправильно.

    Для решения этой задачи есть get_posts(), там в примере есть получение по таксономии.
    Ответ написан
    2 комментария
  • Как сделать пагинацию для кастомных типов записей WP?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Вот материал для изучения. Вордпресс имеет жесткую привязку к названию файлов в теме.
    Иерархия шаблонов

    То что ты пытаешься сделать называется архивная страница, файл archive.php копируешь в archive-articles.php

    у вордпреса есть свои проблемы (они не проблемы если делаешь как надо), в частности global query, это глобальная переменная которая доступна при загрузке определенной страницы. Ели загружаешь архивную страницу в глобалквери содержатся сами посты текущей страницы и собственно пагинация. Функция пагинации берет оттуда данные как и все другие. В твоем коде пример глобальных данный это setup_postdata() но он устанавливает глобальным пост и сбрасывает в конце цикла, а the_title() буред уже данные из глобально установленного поста, если убрать setup_postdata() то the_title() будет брать заголовок страницу на которой он установлен. Так например устанавливается пост когда загружаешь страницу или новость к примеру. Воздействовать на глобал квери можно через хуки, для того чтобы сделать фильтр по записям, например.
    Ответ написан
  • Куда вставить код для подмены slug'a в URL?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    В init
    add_rewrite_tag()
    add_action_init('init', 'nameFunction');
    function nameFunction() {
        // ..
    }
    Ответ написан
    Комментировать
  • Как переименовать слово "Рубрики" у произвольного типа записи?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    На скрине функция регистрации post_type. Функция регистрации таксономии другая, в ней и указывается название.

    register_taxonomy()
    Ответ написан
    2 комментария
  • Как добавить переменную в wordpress, что бы не менять каждый раз цены везде?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Ответ написан
    Комментировать
  • Как понять внутри цикла WordPress и снаружи цикла?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    while в документации

    Внутри цикла это после while():
    Ответ написан
    Комментировать
  • Wordpress меню (или навикация) как сделать по середине сайта?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Теория:
    1) Расположение не имеет значения
    2) Создаем в админке меню и добавляем ему поле через ACF (например) для иконки.
    3) В нужном месте получаем массив меню.
    4) Прогоняем массив в нужную верстку.
    5) Готово

    Если начал изучать WP то сразу стоит разбираться и в ACF (без него почти никак)

    Структура меню:
    Продажа
    - Аукционы
    - Публичные предложения
    Аренда
    - ................

    Документация:
    wp_nav_menu()
    register_nav_menus()
    Ответ написан
    Комментировать
  • Как переделать функцию?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    function ingredients($ingr){
      if(!in_category(243)) {
        $ingr = Preg_Replace_Callback('!<ol>(.*?)</ol>!si', Create_Function('$matches','Return Str_Replace("<li>", "<li itemprop=\"ingredients\" class= \"ingredient\">", $matches[0]);'),$ingr);
      }
      return $ingr;
    }
    a̶d̶d̶_̶f̶i̶l̶t̶e̶r̶(̶'̶t̶h̶e̶_̶c̶o̶n̶t̶e̶n̶t̶'̶,̶ ̶'̶i̶n̶g̶r̶e̶d̶i̶e̶n̶t̶s̶'̶)̶;̶

    Готово.

    Проблема в том что не понимаешь что делаешь. Тебе надо передать в функцию значение ACF поля и вывести это.

    echo ingredients(get_field('название_поля'))

    Документация:
    ACF the_field()
    ACF get_field()
    Wordpress add_filter()
    Ответ написан
  • Как правильно вставлять код в классический редактор wordpress?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    1) Текст, а вообще в шаблон и заполняется полями.
    2) в картинках указать путь к теме, php там не обрабатывается
    3) Шорткод вставляется [contact-form-7 id="114" title="calc pagina" html_id="form-contact" html_class="form"]
    Ответ написан
    Комментировать
  • Нужно ли отключать JQuery в WordPress, если Jquery подключен локально в общем js файле?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Попробуй, и узнаешь что большинство плагинов перестанет работать без плясок с бубном. Это проблема которая не решается.
    Ответ написан
  • Как найти вирус на Wordpress сайте?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Ai-Bolit раньше пользовался им, очень удобно. Сейчас оф сайт закрылся а разработчики занялись более коммерческими проектами. Но это все еще актуально для проверки сайта.

    На хостингах есть свои проверки на вирусы. У ISPManager насколько я помню стоял тот же айболит.
    Ответ написан
    Комментировать
  • WordPress: как привязать кастомный тип записи к странице?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    1) Добавляется CPT (custom post type) - например Отзывы
    2) Через ACF добавляется поле чтобы указывать к какому товару прикрепить отзыв
    3) В нужно месте выводятся записи отзывов с указанием meta_key (в котором указывается к какому товару прикреплен отзыв) и значения meta_value (это ID текущего товара)

    Так получаются записи которые относятся к текущему товару. А дальше выводи как хочется.

    ACF: (пункт 2)
    Тип поля - Объект записи
    Фильтрация по типу записей - [тут выбрать нужный CPT]
    Ответ написан
    Комментировать
  • Wordpress меню активный класс для подменю?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Хуки меню почти на все случаи.

    wp_nav_menu([
        'theme_location' => 'top_left',
        'container'=> false,
        'items_wrap' => '<ul class="nav navbar-nav %2$s">%3$s</ul>',
        'menu_class' => '',
        'ul_class' => 'navbar-nav',
        'ul_child_class' => 'dropdown-menu',
        'li_class' => 'nav-item',
        'li_child_class' => 'nav-item',
        'a_class' => 'nav-link',
        'a_child_class' => 'nav-link',
    ]);


    ## Добавление стилей для стандартного меню
    add_filter('nav_menu_css_class', 'add_menu_list_item_class', 1, 3);
    function add_menu_list_item_class($classes, $item, $args) {
        if (property_exists($args, 'li_class') && !$item->menu_item_parent) {
            $classes[] = $args->li_class;
        }
        if (property_exists($args, 'li_child_class') && $item->menu_item_parent) {
            $classes[] = $args->li_child_class;
        }
        return $classes;
    }
    
    add_filter( 'nav_menu_link_attributes', 'add_menu_link_class', 1, 3 );
    function add_menu_link_class( $atts, $item, $args ) {
        if ( strpos( $atts['href'], home_url() ) === false ) {
            $atts['target'] = '_blank';
        }
        if (property_exists($args, 'a_class') && !$item->menu_item_parent) {
            $atts['class'] = $args->a_class;
        }
        if (property_exists($args, 'a_child_class') && $item->menu_item_parent) {
            $atts['class'] = $args->a_child_class;
        }
        return $atts;
    }
    
    add_filter( 'nav_menu_submenu_css_class', 'my_nav_menu_submenu_css_class', 1, 3);
    function my_nav_menu_submenu_css_class($classes, $args, $depth) {
        if (property_exists($args, 'ul_child_class')) {
            $classes[] = $args->ul_child_class;
        }
        return $classes;
    }
    Ответ написан
    Комментировать
  • Как через acf вывести товары woocommerce?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Документация плагина Woocomerce ничего не должна писать про сторонний плагин ACF

    Ответ очевиден: Поля надо выводить в том месте шаблона где это надо, через код.
    Ответ написан
  • Почему исчезли иконки на теме WordPress?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    В большинстве случаев так показывает если отсутствует шрифт иконок. Или где-то неправильно указан адрес сайта в настройках (при переносе на другой домен бывает). Как и куда он пропал это уже сложно так сказать. Есть биржа фриланса лучше написать туда, там помогут.
    Ответ написан
    Комментировать
  • Как изменить стили меню и прочих элементов в Wordpress?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Эти хуки закрывают 99% случаев.

    ## Добавление стилей для стандартного меню
    add_filter('nav_menu_css_class', 'add_menu_list_item_class', 1, 3);
    function add_menu_list_item_class($classes, $item, $args) {
        if (property_exists($args, 'li_class') && !$item->menu_item_parent) {
            $classes[] = $args->li_class;
        }
        if (property_exists($args, 'li_child_class') && $item->menu_item_parent) {
            $classes[] = $args->li_child_class;
        }
        return $classes;
    }
    
    add_filter( 'nav_menu_link_attributes', 'add_menu_link_class', 1, 3 );
    function add_menu_link_class( $atts, $item, $args ) {
        if ( strpos( $atts['href'], home_url() ) === false ) {
            $atts['target'] = '_blank';
        }
        if (property_exists($args, 'a_class') && !$item->menu_item_parent) {
            $atts['class'] = $args->a_class;
        }
        if (property_exists($args, 'a_child_class') && $item->menu_item_parent) {
            $atts['class'] = $args->a_child_class;
        }
        return $atts;
    }
    
    add_filter( 'nav_menu_submenu_css_class', 'my_nav_menu_submenu_css_class', 1, 3);
    function my_nav_menu_submenu_css_class($classes, $args, $depth) {
        if (property_exists($args, 'ul_child_class')) {
            $classes[] = $args->ul_child_class;
        }
        return $classes;
    }


    $args = array(
        'theme_location' => 'mobile',
        'container'=> false,
        'menu_id' => 'top-nav-ul',
        'items_wrap' => '<ul id="%1$s" class="nav navbar-nav %2$s">%3$s</ul>',
        'li_class' => '' // <======================!!!!!!!!!
    );
    wp_nav_menu($args);
    Ответ написан
    Комментировать
  • Как привязать записи к разным страницам WordPress?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    В вордпресе это называется таксономии (для кастомных постов) или категории (для обычных постов).
    Добавляешь категории и записи будут соответствовать сайт.ру/категория/запись
    Ответ написан
  • Как поддерживать сайт без админки?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Можно поставить 1 вордпресс и все страницы переделать в page template, далее создать страницу для каждого шаблона. (да очень монотонная работа но всеже) далее уже можно использовать силы wp для постепенной интеграции. Например если на 50 страницах есть блог то в эти 50 шаблонов его вынести и уже добавлять новости через админку. Это явно удобнее чем менять каждый раз в 50 страницах блок новостей.

    вопрос как избежать новых установок WP на каждую из директорий

    Тут вопрос как сейчас это работает. Все на одном домене или на разных?
    Если разные домены то есть в вордпесе мультисайт
    Если на одном то просто сохранить необходимую вложенность. Когда указывается родитель для страницы.

    А дальше уже можно постепенно адаптировать все шаблоны.
    Ответ написан
  • Как вставить тег H1 рубриках админки произвольным полем?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    1) В настройках полей ACF добавить текстовое поле для таксономии.
    2) В коде шаблона вывести значение поля ACF в теге H1
    3) Добавить проверку значения поля ACF чтобы не выводился пустой H1 если поле не заполнено.
    Ответ написан