Ответы пользователя по тегу WordPress
  • Как в acf изначально переопределить значение параметра new_lines для textarea?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Попробуй acf/pre_format_value или acf/format_value

    acf/includes/acf-value-functions.php:146

    acf doc
    Ответ написан
  • Административная панель WordPress перестала функционировать. Как решить эту проблему?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Проверить что указано в настройках http или https или отключить временно принудительный редирект на https и смотреть заработает ли
    Ответ написан
    Комментировать
  • Как правильно передать проект Wordpress?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Если все делать нормально то ничего кроме папки с темой не надо передавать. (за исключением если нужно наполнить контентом)

    1) Для установки необходимых плагинов есть TMG
    2) Для полей есть ACF и весь его функционал сохранения конфигурации полей в теме
    3) Чтобы не разводить помойку из плагинов, большинство тем требует только acf (+ acf extended для форм на любителя), rus-to-lat (или аналог), aio (или собрать на acf)
    4) Возможно есть специфические плагины которые нужны по необходимости типа Image Regenerate (Не точное название), или какие-то конвертеры для поддержки webp, или Post Dublicate.
    5) Любые функциональные плагины которые что-то показывают пользователю (для примера список и добавление комментариев или что-то подобное) должны быть выброшены в мусорку тк они все равно не соответствуют макету. Это помойка и нубство.

    Для удобства лучше включить acf и тп плагины в заготовку темы. Они все равно платные (плааатные для тех кто не умеет гуглить) и никакие обновления автоматические им не нужны.

    В вордпресе больше нет папок которые нужны для работы. Ставишь новый ВП переносишь и включаешь тему и все должно работать.
    Ответ написан
    Комментировать
  • Некоторые скрипты пашут. Но у меня ошибка с одним wp_enqueue_script?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    jquery подключен? Наверняка jquery.slabtext.js (судя из названия) проверяет наличие jquery и не выполняется.
    Ответ написан
    Комментировать
  • Из-за чего дубли в Ajax подгрузке?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    if (window.jQuery) {
        jQuery(function($){
            $('#loadmore').click(function(){
                let btn_load = $(this);
                let load_list = $('#load_list');
                let data = {
                    'action': action,
                    'query': true_posts,
                    'page' : current_page
                };
                btn_load.text('Загружаю...');
                $.ajax({
                    url:ajaxurl, // обработчик
                    data:data, // данные
                    type:'POST', // тип запроса
                    success:function(data){
                        if(data) {
                            btn_load.text('Загрузить ещё');
                            load_list.append(data);
                            current_page++;
                            if (current_page == max_pages) btn_load.remove();
                        } else {
                            btn_load.remove();
                        }
                    }
                });
            });
        });
    }


    add_action('wp_ajax_loadmore', 'load_more');
    add_action('wp_ajax_nopriv_loadmore', 'load_more');
    function load_more(){
        $args = unserialize( stripslashes( $_POST['query'] ) );
        $args['paged'] = $_POST['page'] + 1; // следующая страница
        $args['post_status'] = 'publish';
        query_posts( $args );
        if( have_posts() ) {
            while( have_posts() ): the_post();
                switch ($args['post_type']) {
                    case 'news':
                        get_template_part( 'tpl/path/news/news-list-item', get_post_format() );
                        break;
                }
    
            endwhile;
        }
        die();
    }


    <?php
    /**
     * Template Name: Страница новостей
     */
    get_header(); ?>
    
        <?php query_posts([
            'post_type' => 'news',
            'post_status' => 'publish',
            'posts_per_page' => 12,
            'orderby'     => 'date',
            'order'       => 'DESC',
        ]); ?>
    
        <div id="load_list">
            <?php if( have_posts() ){
                while( have_posts() ){ the_post();
                    get_template_part( 'tpl/path/news/news-list-item', get_post_format() );
                }
            } ?>
        </div>
    
        <?php if (  $wp_query->max_num_pages > 1 ) : ?>
            <script>
                var ajaxurl = '<?php echo site_url() ?>/wp-admin/admin-ajax.php';
                var true_posts = '<?php echo serialize($wp_query->query_vars); ?>';
                var current_page = <?php echo (get_query_var('paged')) ? get_query_var('paged') : 1; ?>;
                var max_pages = '<?php echo $wp_query->max_num_pages; ?>';
                var action = 'loadmore';
            </script>
            <div id="loadmore">Показать еще</div>
        <?php endif; ?>
    
        <?php wp_reset_query(); ?>
    
    
    <?php get_footer(); ?>
    Ответ написан
    Комментировать
  • Как сделать переменное слово в заголовках и контенте мультисайта WP?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    1) Добавить через ACF текстовое поле в options (если глобально) или для страницы (если в каждой странице надо отдельно) и выводить его где надо (можно сделать все как хочется в том числе то что в пункте 2)

    2) Поставить All in One SEO и установливать для каждой страницы заголовки и другие мета данные страницы (более гибкое)
    Ответ написан
    Комментировать
  • Как в Wordpress сделать REST API запрос для чтения произвольных полей постов?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Если уж с acf ничего не получилось значит не пробовал ничего сделать.

    acf rest api
    Ответ написан
  • Как сделать на сайте wp 2 меню?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    У тебя указан menu_id..

    Что сделать:
    В админке во вкладке "Управление областями" оставить поле "Назначенное меню" пустым.
    Там в редакторе меню выбрать в какой позиции выводить это меню. (Область отображения)
    Убрать menu_id.

    Ниже пример для 99% случаев:
    register_nav_menus([
        'top' => 'Верхнее',
    ]);
    wp_nav_menu([
        'theme_location' => 'top',
        'container'=> false,
        'menu_class' => 'nav ',
        'menu_id' => '',
        'fallback_cb' => false   
    ]);

    Нужно понимать что выводится не меню а его позиция, через админку указывается связь, позиции и меню. в wp_nav_menu() можно указать какое именно надо, в документации описан приоритет.

    А это решение для остального процента:
    ## Добавление стилей для стандартного меню
    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;
    }
    wp_nav_menu([
        'theme_location' => 'bottom',
        'container'=> false,
        'menu_class' => '',
        'menu_id' => '',
        'fallback_cb' => false,
        'a_class' => '',
        'a_child_class' => '',
        'li_class' => '',
        'li_child_class' => '',
        'ul_child_class' => '',
    ]);
    Ответ написан
  • Как восстановить сайт после потери домена?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    1) купить другой домен
    2) заменить домен в базе данных WP
    3) указать DNS записи домена на свой хостинг
    4) на хостинге если есть возможность выбирать папку сайта (при создании домена) то указать ту которая уже есть, если нет то создать домен и скопировать папку с файлами WP
    В интернете гуглить "как изменить домен wordpress"
    Ответ написан
    Комментировать
  • Как исправить ошибку при незаполненном цифровом поле ACF?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    <?php if ($_ = get_field('vsego_ch')) { ?>
        <div><?php echo number_format($ch, 0, '', ' ') ?></div>
    <?php } ?>
    Ответ написан
    Комментировать
  • Как задать шаблон для таксономий?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Не правильно просто брать и заставлять использовать шаблон. Есть логичная структура и лучше использовать ее. Для таксономии сделать шаблон taxonomy-case_category.php а для переиспользования контента вынести его в другие файлы и включить в оба шаблона.

    Для таксономии:
    'query_var' => true,
    'has_archive' => true,
    'show_in_rest' => true,
    'rewrite' =>  [
        'slug' => 'cases',
    ],
    Ответ написан
    Комментировать
  • Вордпресс, почему не выводится пагинация на странице поиска?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Правильное использование структуры шаблонов WP не нуждается в получении данных в коде страницы.
    Я предлагаю сначала почитать документацию и навсегда (в 99% ситуаций) избавиться от WP_Query в шаблонах.
    Сейчас получается так что поиск и так обрабатывает запрос, а после этого ты делаешь тоже самое но только у тебя это не работает как надо.
    Ответ написан
    Комментировать
  • Как добавить скрытое поле в cf7?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Посмотреть в документации cf7 как добавить шорткод поля, в логике обработки шорткода получить значение и добавить его в value, добавить шорткод этого поля в редактор формы.
    Ответ написан
    Комментировать
  • Почему CF7 не отправляет на gmail письма?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    CF7 тут не причем, твои письма не проходят спам фильтр, надо добавить записи SPF/DKIM в записи домена
    Ответ написан
    Комментировать
  • Что случилось с сайтом?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Например потерял файл .htaccess который участвует в маршрутизации.
    Ответ написан
    Комментировать
  • Как вывести изображения из галереи текущего товара в превью его карточки?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Надо передавать в функцию id поста из лупа а не использовать глобал. Это сделает код логичнее и исключит не понимание как работает global var в wp.
    Ответ написан
    6 комментариев
  • Как реализовать такую цепочку категорий на wordpress?

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

    taxonomy-{taxonomy}-{term}.php

    где термин указывается тот который нужен
    Ответ написан
  • Как перенести пользователей из WordPress на самописный сайт на Laravel?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    wp пароли это md5() - ничего сложного
    Ответ написан
    Комментировать
  • Почему слетела верстка в wpbakery page?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Верстки тут нет, только не работающие шорткоды. А не работают они скорее всего потому что кавычки неправильные.
    Ответ написан
  • Как сделать custom post type главной страницей?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    1) Добавить поле в ACF Options в которой будет указываться нужная страница
    2) На странице опций ACF выбрать в созданном поле нужный пост и указать чтобы отдавало не ID а Объект
    3) Сделать шаблон страницы
    4) Указать созданный шаблон для страницы "Главная"
    5) Указать страницу как "главная страница" в настройках
    6) В шаблоне страницы получить поле в котором уже будет содержатся нужный пост
    7) Обработать значение объекта так как требует верстка.
    8) Забыть об использовании плагинов, разобратся что такое ACF и понять что он очень важен.
    Ответ написан