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

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Попробуйте так:
    $current_year = get_query_var('year');
    Ответ написан
    1 комментарий
  • Как добавить доп. валидацию в Contact form 7 WP?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    А вот если в поле имейл вписать пару букв

    Если используется именно поле email, то оно будет валидировать корректность введенного email-адреса.

    В стандартных средствах как включить такую валидацию не нашел

    Как-то давно делал, в частности менял выводимые сообщения об ошибках.
    Выглядело примерно так
    //Добавляем фильтры
    add_filter('wpcf7_validate_tel*', 'dco_wpcf7_validate', 10, 2);
    add_filter('wpcf7_validate_email*', 'dco_wpcf7_validate', 10, 2);
    add_filter('wpcf7_validate_text*', 'dco_wpcf7_validate', 10, 2);
    add_filter('wpcf7_validate_textarea*', 'dco_wpcf7_validate', 10, 2);
    
    function dco_wpcf7_validate($result, $tag) {
        //Получаем объект тега
        $tag = new WPCF7_Shortcode($tag);
    
        //Получаем значение поля
        $value = isset($_POST[$tag->name]) ? trim(wp_unslash(strtr((string) $_POST[$tag->name], "\n", " "))) : '';
    
        //Указываем правила для тега с именем "your-name"
        if ('your-name' == $tag->name) {
            //Если тег обязателен и имеет пустое значение — выводим сообщение об ошибке
            if ($tag->is_required() && '' == $value) {
                $result->invalidate($tag, 'Укажите имя');
            }
        }
    
        //Указываем правила для тега с типом "email"
        if ('email' == $tag->basetype) {
            //Если тег обязателен и имеет пустое значение — выводим сообщение об ошибке
            if ($tag->is_required() && '' == $value) {
                $result->invalidate($tag, 'Укажите верный электронный адрес');
                //Если значение не пустое и не является корректным email-адресом — выводим сообщение об ошибке
            } elseif ('' != $value && !wpcf7_is_email($value)) {
                //Функция "wpcf7_get_message" выводит сообщения с вкладки "Уведомления при отправке формы" настроек формы
                $result->invalidate($tag, wpcf7_get_message('invalid_email'));
            }
        }
    
        //Указываем правила для тега с типом "tel"
        if ('tel' == $tag->basetype) {
            //Если тег обязателен и имеет пустое значение — выводим сообщение об ошибке
            if ($tag->is_required() && '' == $value) {
                $result->invalidate($tag, 'Укажите верный телефон');
                //Если значение не пустое и не является корректным телефонным номером — выводим сообщение об ошибке
            } elseif ('' != $value && !wpcf7_is_tel($value)) {
                //Функция "wpcf7_get_message" выводит сообщения с вкладки "Уведомления при отправке формы" настроек формы
                $result->invalidate($tag, wpcf7_get_message('invalid_tel'));
            }
        }
        
        //Указываем правила для тега с именем "your-message"
        if ('your-message' == $tag->name) {
            //Если тег обязателен и имеет пустое значение — выводим сообщение об ошибке
            if ($tag->is_required() && '' == $value) {
                $result->invalidate($tag, 'Введите текст сообщения');
            }
        }
    
        return $result;
    }
    Ответ написан
    2 комментария
  • Как вывести записи на статическую главную страницу WordPress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Если с написанием кода туго, то можно попробовать что-то из плагинов. Например, в плагине Shortcodes Ultimate есть шорткод Posts, возможно, он подойдет.
    Ответ написан
    Комментировать
  • Как отредактировать инфу на статической странице?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Здравствуйте.

    Проверить не выбран ли Шаблон в блоке "Атрибуты страницы". Если выбран, нужно найти его в папке темы и внести изменения.
    Если шаблон не выбран, то поискать в папке файл с названием page-ID_СТРАНИЦЫ.php
    Если и это не поможет, то скачать файлы темы на компьютере, скопировать кусочек текста или имя класса какого-нибудь элемента со страницы и сделать поиск по файлам, например, с помощью Notepad++.
    Ответ написан
    Комментировать
  • Как получить данные $category_id в wordpress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Подозреваю, что так
    $category_id = get_query_var( 'cat' );

    Также, можно попробовать плагин Advanced Custom Fields, у него вроде достаточно много примеров в документации.
    Ответ написан
    Комментировать
  • Можно ли ограничить количество выводимых знаков в описании категории?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Добрый.

    Можно обработать вывод описания категории функцией wp_trim_words. Она обрезает текст до нужного количества слов (по умолчанию, 55).
    <?php
    echo wp_trim_words( get_the_content(), 40, '...' );
    ?>
    Ответ написан
    1 комментарий
  • Какой плагин использовать для мультирегиональности на wordpress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Пробовал мультисайты - там сложно клонировать контент между сайтами, а это важно

    Возможно, будет полезен плагин ThreeWP Broadcast. На скриншоте из описания галочки присутствуют.

    xtranslate работает не везде корректно + нет возможности на одной версии сайта создать материал, когда как на другом чтобы он отсутствовал.

    qTranslate X? Там вроде есть в настройках галочка "Скрыть контент, который не доступен для выбранного языка.". Не помогла?

    Меню не настроить разное на свой регион

    Опять же, если речь про qTranslate X, можно не заполнять поле "Текст ссылки" для языка и этот пункт не будет отображаться для данного языка.
    Ответ написан
    Комментировать
  • Смена Url при скроллинге?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Здравствуйте.

    Думаю, Вам должна подойти библиотека Waypoints. С помощью неё можно вызывать функции при скроллинге элементов. На сайте есть примеры с демонстрацией (нужно прокрутить страницу).
    Ответ написан
    Комментировать
  • Как в Wordpress убрать из ссылки slug таксономии?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Добрый день.

    для чего это сделано я не пойму

    Думаю, для того, чтобы ярлыки терминов таксономий и записей не пересекались, если вдруг кто-то решит присвоить им одинаковые url. А чем Вам это помешало?

    как можно удалить это из ссылки?

    Есть же всякие плагины для этого. Вот, например, один из первых в поиске Remove Category URL.

    Для таксономий, не припоминаю, чтобы встречал плагин. Скорее всего нужно копать куда-то в сторону rewrite rules.
    Ответ написан
  • Как в Wordpress правильно указывать путь до темы оформления в js-скриптах?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Примерно вот так (поместить в файл functions.php):
    function wpdocs_theme_name_scripts() {
        wp_enqueue_style( 'style-name', get_stylesheet_uri() );
        wp_enqueue_script( 'script-name', get_template_directory_uri() . '/js/example.js', array(), '1.0.0', true );
    }
    add_action( 'wp_enqueue_scripts', 'wpdocs_theme_name_scripts' );

    Подробнее можно почитать в документации.

    Если подключается в дочерней теме, то вместо функции get_template_directory_uri() нужно использовать get_stylesheet_directory_uri().

    Уточнение ответа по поводу использования этих функций в js.
    Вариант 1.
    Добавить переменную для javascript с помощью хука wp_head
    function my_js_variables() { ?>
          <script type="text/javascript">
            var templateUrl = '<?php get_template_directory_uri(); ?>';
          </script><?php
    }
    add_action ( 'wp_head', 'my_js_variables' );

    Ну и затем пользоваться ей как обычной js-переменной.

    Вариант 2.
    Воспользоваться функцией wp_localize_script
    wp_enqueue_script( 'my-script', get_template_directory_uri() . '/js/example.js' );
    $translation_array = array( 'templateUrl' => get_template_directory_uri() );
    wp_localize_script( 'my-script', 'themename', $translation_array );

    Затем в нужном месте получить значение
    var templateUrl = themename.templateUrl;
    Ответ написан
    7 комментариев
  • Как сделать свою landing page в WordPress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Доброго.

    Создать новую страницу в разделе Страницы, затем выбрать её статической главной страницей в разделе Настройки -> Чтение. Создать шаблон front-page.php в папке темы и, например, с помощью функции get_posts() вывести необходимые материалы на страницу и сверстать.

    Можно проделать примерно то же самое, но создав шорткоды для вывода записей и вставив на страницу в визуальном редакторе. Есть, кстати, и готовые наборы шорткодов, например, Shortcodes Ultimate. В нем есть разные шорткоды, в том числе и для вывода записей.
    Ответ написан
    Комментировать
  • Как в wordpress сделать рандомную ссылку?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Думаю, как-то так:
    $random_post = get_posts(array('post_type' => 'post', 'cat' => '3', 'posts_per_page' => '1', 'orderby' => 'rand'));
    if($random_post) :
        $post = $random_post[0];
        setup_postdata($post); ?>
        <a href="<?php the_permalink(); ?>">Случайный пост из категории с ID 3</a>
    <?php wp_reset_query(); endif;
    Ответ написан
  • Как правильно сделать перевод на Wordpress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Не очень понимаю, что Вы хотите получить в итоге.

    Если Вы изменили исходную строку, то к ней нужно добавить обновленный перевод.

    А чтобы не возникало проблем с непереведенными строками, на этапе разработки новой версии плагина или темы нужно формировать новый файл переводов, с учетом новых строк. Собственно, по такому принципу и выпускаются новые версии WordPress. Механизм можно посмотреть на примере какого-нить плагина из каталога, допустим, Akismet. По ссылке или на скриншоте ниже можно увидеть, что есть две ветки переводов Development и Stable. В Development на данный момент ожидают перевода 8 новых строк.
    22d7469812f0488bad043b3d27982059.png
    Ответ написан
    5 комментариев
  • Возможно ли реализовать нормальное дерево категорий в Wordpress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Не очень понятно, что Вы хотите получить в итоге.

    Если нужны категории, то для этого можно использовать рубрики или добавить свою таксономию.
    Если нужно указывать описание для категорий через визуальный редактор, то есть всяческие плагины, например, Rich Text Tags.
    Если нужны произвольные поля для терминов таксономий, то тоже есть, например, Advanced Custom Fields. А начиная с WP 4.4 возможность использовать метаданные для терминов таксономий добавили в ядро.
    Ответ написан
    Комментировать
  • Как сделать страницу контакты и подобные, таким образом, что бы можно было редактировать в админке WP в одном месте?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    1. А зачем редактировать форму в странице? Так можно её и поломать ненароком.
    2. Можете произвольные поля или если хочется централизации, то, возможно, стоит вынести все нужные настройки в Customizer и тогда можно будет редактировать всякое на странице Внешний вид -> Настроить в админ-панели.
    Ответ написан
    Комментировать
  • Какой wordpress-плагин выбрать для создания множества "pages" с одинаковым шаблоном страницы, но настраиваемым ее содержимым?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Поэтому ищется либо другой способ решить вопрос стандартными средствами, либо некий плагин, позволяющий создать некий каркас простых полей, списков, возможно вложенных или составных списков и прочего и потом визуально выводить этот каркас вместо(плюс) того же текстового поля сущности page.

    Возможно, подойдет Flexible Content в плагине Advanced Custom Fields.
    При необходимости, копировать страницы можно, например, с помощью плагина Duplicate Post.
    Ответ написан
    9 комментариев
  • Как создать статичную страницу страницу в wordpress своим php кодом?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Здравствуйте.

    Можно сделать свой шорткод и потом его можно будет вставлять через визуальный редактор страниц в админ-панели или использовать с помощью функции do_shortcode в файлах шаблонов темы.

    Если Вам нужно добавить какой-то код к выводимому контенту, то можно воспользоваться хуком the_content. В этом случае страницы для вывода можно ограничить с помощью условных тегов.
    Ответ написан
    Комментировать
  • Изменение текста любом блоке шаблона wordpress через админку?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Можно реализовать с помощью Customizer или шорткодов (также, в каталоге плагинов есть готовые наборы шорткодов, например, Shortcodes Ultimate) или использовать какие-то визуальные редакторы, типа, Visual Composer.
    Ответ написан
    Комментировать
  • Чем C# .net mvc лучше чем любой ЦМС типа Wordpress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    1. MVC можно реализовать и на c# и на php. Это просто архитектурный паттерн.
    2. Сравнивать язык и CMS некорректно. Используя язык, Вы сами разрабатываете инфраструктуру своего приложения, а используя CMS — Вы принимаете её такой, какая она есть. Грубо говоря, если Вам нужно поклеить обои в квадратном доме, Вы клеите и сдаете заказчику готовый дом. Быстрее? Определенно. А если заказчик захотел треугольный дом? Придется ломать стены и строить заново. Быстрее это чем построить дом самостоятельно с нуля? Уже вопрос.
    Ответ написан
    Комментировать
  • Задать размеры миниатюра?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Привет.

    Нужно найти где задается размер для "image-style3" и изменить.
    Размер задается с помощью функции add_image_size, обычно указывается в functions.php.
    Пример:
    add_action( 'after_setup_theme', 'wpdocs_theme_setup' );
    function wpdocs_theme_setup() {
        add_image_size( 'category-thumb', 300 ); // 300 pixels wide (and unlimited height)
        add_image_size( 'homepage-thumb', 220, 180, true ); // (cropped)
    }

    или попробовать изменить прямо в этом участке кода:
    $room['post_thumbnail'] = wp_get_attachment_image_src( get_post_thumbnail_id($query->post->ID), array(200, 200));

    Подробнее о функции wp_get_attachment_image_src в документации.
    Ответ написан
    Комментировать