Ответы пользователя по тегу WordPress
  • Сделать выборку постов такого вида?

    trampick
    @trampick
    Веб-разработчик
    Вам нужно использовать в запросе meta_query вместе с tax_query . Если нужно использовать запрос за 2 года(такое возникнет когда выбрать январь 2018 и ноябрь-декабрь 2017), то придется разбить его на 2 запроса.
    По хорошему надо переделать. У поста создать еще поле с датой в формате Unix Timestamp. Тогда и запросы проще будут, и работать все быстрее будет.
    Ответ написан
    Комментировать
  • Что означает это предупреждение от iThemes Security об изменении в файле?

    trampick
    @trampick
    Веб-разработчик
    Что такое awstats. В общем это модуль твоего сервера(хостинга) который собирает различную статистику. Он это делает каждый день и записывает в файл. Почему файл awstats062018.txt потому что сейчас 6 месяц 2018 года. Следующий файл создаст awstats072018.txt в следующем месяце. Этот модуль можно настроить по разному. Запуск осуществляется через wp-cron, скорее всего он где в плагинах есть.
    Ответ написан
    Комментировать
  • Как работают тразакции в Wordpress?

    trampick
    @trampick
    Веб-разработчик
    Не понятно определил ли ты где то ранее global $wpdb;
    Попробуй условие заменить на это
    if (false === $result) {
    throw new Exception("Ошибка БД. ".$wpdb->last_error);
    }

    Думаю дело в срабатывании условия.
    Ответ написан
    Комментировать
  • Вывод имени и фамилии и вставить на сайт?

    trampick
    @trampick
    Веб-разработчик
    Привет. Я не использовал никогда тему classipress. Но я вижу ошибку в
    <?php echo 'Продавец: ' . $current_user->user_firstname ,' ', $current_user->user_lastname ."\n"; ?>

    Ты во всех записях увидишь имя пользователя свое, и только тогда когда ты залогинен. Вообще тут в этой строке много ошибок. Запятые вместо точек. Не понятно получил ли ты ранее где либо объект $current_user.

    Если как нужно, то тебе необходимо получить автора поста(или какой там у тебя post_type). И получить необходимые для него поля. Например можно так
    global $post;
    $post_author_id=$post->post_author;
    echo 'Продавец: '.get_the_author_meta('first_name',$post_author_id).' '.get_the_author_meta('last_name',$post_author_id);
    Ответ написан
  • Плагин для бронирования?

    trampick
    @trampick
    Веб-разработчик
    Когда есть какое то конкретное визуальное и функциональное требование вряд ли найдется готовое решение. Поэтому если нужно конкретно как на скрине, то придется заказать этот модуль у разработчиков.
    Ну а если нет на это средств, то можно выбрать готовое решение из этого списка. Можно найти меньшее из зол.
    Ответ написан
    Комментировать
  • Как сделать георетаргетинг в WordPress?

    trampick
    @trampick
    Веб-разработчик
    Готового решения не найдете скорее всего. Придется написать самому, либо заказать.
    Можно поискать похожий функционал здесь
    Ответ написан
  • Как построить дерево категорий в WooCommerce?

    trampick
    @trampick
    Веб-разработчик
    Возможно поможет этот плагин, либо аналогичный.
    Ответ написан
    Комментировать
  • Как лучше перенести сайт, не потеряв позиции?

    trampick
    @trampick
    Веб-разработчик
    Позиции в любом случае на время просядут, но затем вернутся в норму, если на новом сайте не будет грубых ошибок. Если тестовый сайт непроиндексирован, то достаточно перенести его на рабочий домен, а затем указать в се 301 редиректы в htaccess. Перед заменой убедитесь сразу что все meta данные есть на страницах и генерируются как надо, так же наличие заголовков h1. Так же проверьте на корректность robots.txt что бы сайт был открыт для индексации. Если тестовый сайт есть в индексе, то как написал Владимир Дружаев через вебмастер и те же действия.
    Ответ написан
    Комментировать
  • Как скрыть редактор для определенного поста, а не страницы?

    trampick
    @trampick
    Веб-разработчик
    remove_post_type_support('page', 'editor');
    Возможно здесь ошибка. page - это параметр post_type. Я не знаю как у вас там устроено. Если отзывы сделаны через записи, то нужно писать post вместо page. Либо тот post_type который создали.

    Еще как вариант поставить плагин ACF . У него есть возможность при определенных условия как добавлять поля, так и скрывать. Под условиями я подразумеваю к примеру для рубрики отзывов только скрывать.
    Ответ написан
  • Как избавиться от лишних страниц WordPress?

    trampick
    @trampick
    Веб-разработчик
    Это архитектура WP. Она состоит по умолчанию из страниц, записей, и рубрик. У всех этих единиц всегда есть урл.
    Я как понимаю есть страница отзывов(она же рубрика) и на ней выводится множество записей отзывов. Каждый отзыв имеет свой урл и доступен по этому урлу - хоть ссылка нигде и не проставлена. В общем с этим то и ничего не сделаешь, кроме как вместо рубрики создать страницу и вставить туда все отзывы контентом. Это не выход.
    Выход правильная sitemap. Скорее всего от туда сейчас берутся ссылки, которые нигде не проставлены(маленькая вероятность еще что из rss). Нужно правильно настроить sitemap через готовый плагин.
    Ответ написан
    2 комментария
  • Как решить "Не удалось установить защищённое соединение с WordPress.org."?

    trampick
    @trampick
    Веб-разработчик
    Похоже на то, что нет каких то прав доступа. Найди сам плагин на официальном сайте и скачай. Затем распакуй его в папку wp-content/plugins/name-plugin. Важно что бы в самой папке name-plugin уже были файлы скриптов php.
    Ответ написан
    Комментировать
  • Какой выбрать материал (книга/видеокурс) для неповерхностного обучения WordPress?

    trampick
    @trampick
    Веб-разработчик
    Не знаю можно ли учесть мой ответ как ответ, но я скорее хочу поделится небольшим опытом.
    За 3 недели, имея маленький опыт в разработке навряд ли можно постигнуть глубинности WP. В свое время я смотрел видео на ютубе - очень долгое занятие и мало толку, зато из плюсов часто рассказывается о нюансах, которые встретились у автора при работе с теми или иными вещами - опыт.

    Если понимаешь архитектуру WP, то тут уже скорее приходится искать конкретную функцию или функции для текущей версии WP. Почти для всех есть описание на русском, правда не такое подробное как en. Я лично все запросы для поиска функций пишу в en форме. Очень редко когда не получается находить нужную функцию.
    По сути своей WP в большинства случаях использую как crud. Из этого вытекает что большая часть кода WP это получение данных по определенным запросам. Далее с этими данными средствами php ты работаешь.

    Так же для расширения своих знаний помогает отвечать на возникающие проблемы других людей, например, на toster.ru.

    Сделать сайт визитку, имея готовую верстку на WP очень легко, если ты знаешь архитектуру WP. Я первый сайт визитку сделал за 1 день, с учетом изучения (поверхностного) WP. Несколько файлов шаблонов, функции подключения css, js, стандартных циклов и меню - все:)
    add_action( 'wp_enqueue_scripts', 'add_my_scripts' );
    wp_enqueue_style()
    wp_enqueue_script()
    add_action( 'after_setup_theme', 'my_register_nav_menus' );
    register_nav_menus()
    wp_head()
    wp_nav_menu()
    while ( have_posts() ) {the_post();}
    get_the_title()
    get_the_content()
    get_the_excerpt()
    get_the_posts_pagination();
    wp_footer()

    С этим набором функций можно создать простой сайт визитку:) Смотри примеры с использованием всего этого. Так же возьми уже готовую стандартную тему и посмотри что там есть.
    Ответ написан
    Комментировать
  • Как на вордпрессе отправить заявку в телеграмм?

    trampick
    @trampick
    Веб-разработчик
    Не сложно.
    1. Разбираемся как можно отправлять сообщения в телеграмм с помощью php
    $token = "462ergwergwergwergerg";//Как токен  получить в ссылке выше. Здесь просто случайный.
    $chat_id = "-23234234234234";//id чата должно быть с минусом.
    $txt .= "<b>Hello world</b>";
    $sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}", "r");
    if ($sendToTelegram) {
        echo '<p class="success">Спасибо за отправку вашего сообщения!</p>';
    } else {
        echo '<p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p>';
    }


    2. Смотрим документацию contact form 7 у знаем через какой хук перехватить отправку сообщений. Перехватываем и и с помощью скрипта выше пишем телеграмм.
    Ответ написан
  • Убрать зум сайта в мобильной версии?

    trampick
    @trampick
    Веб-разработчик
    Это вечная проблема:) сайты это не мобильное приложение. viewport - здесь особо не поможет, так как при такой реализации будут изображения в очень уменьшенном виде на мобильных устройствах и ничего не сделаешь.
    - 1 вариант сделать так чтобы каждая картинка (или группа картинок) открывалась в новой вкладке браузера отдельно - не очень удобно пользоваться, зато удобно зумировать. Т.е. кроме изображений на этой вкладке ничего не было. Это делать только для мобильный устройств.
    - 2 вариант найти готовую библиотеку галереи, где есть функционал работы с мобильными устройствами. Т.е. JS события работы пальцами с устройством перехватывались.

    p.s. на сайте много ошибок в консоли.
    Ответ написан
    Комментировать
  • Помощь в выводе кастомной записи?

    trampick
    @trampick
    Веб-разработчик
    То что здесь написано вряд ли понятно, кроме тебя. Задача, вопрос не понятны. Отредактируй вопрос что бы стало понятнее)
    Ответ написан
    Комментировать
  • Как получить критерий сортировки в общем цикле?

    trampick
    @trampick
    Веб-разработчик
    А теперь ВОПРОС: Как мне, когда я нахожусь в основном цикле вывода товаров или перед ним, узнать была ли сортировка по умолчанию (default) или пользователь что-то выбрал?
    - 1 вариант, посмотреть $_REQUEST. Когда используется сортировка то, там что то есть.
    - 2 вариант посмотреть global wp_query при разной сортировке, узнать что там меняется.

    Тут нужно прикинуть насколько много товаров в каждой категории и сколько категорий. Я подскажу самый легкий способ реализации через кастомные поля. Для каждой карточки товара нужно создавать кастомное поле с названием 'order_$term_id'. Т.е. в зависимости от количество рубрик в которых находится товар, будет количество таких полей. Можно написать скрипт который сам будет создавать эти поля в зависимости от количества выбранных категорий. В эти поля нужно проставлять числа позиций. К примеру у футболок будет число от 0 до 100, у шорт от 100 до 200 и т.д. Здесь не принципиально и нужно делать как нужно. Можно всем шортам проставить одно число или разное в зависимости нужно ли сортировать дополнительно внутри группы шорт.
    Получается что у всех карточек категории с id 16 будет кастомное поле order_16 с значениями внутри. Важно что бы хотя бы 0 там стоял.
    Ну и последним шагом нужно находясь в категории перехватывать запрос wp_query и изменять сортировку
    $args = array(
       'meta_key' => 'order_16',
       'orderby' => 'meta_value_num',
       'order' => 'ASC',
     );

    add_action( 'pre_get_posts', 'modify_main_query' );
    function filters_modify_main_query( $query ) {
    
    	return $query;
    }

    Делать это нужно, если конечно в $_REQUEST в ячейки сортировки нет ничего.
    Ответ написан
    2 комментария
  • Как установить купленный личный кабинет (не плагин) на водпресс?

    trampick
    @trampick
    Веб-разработчик
    Есть 2 варианта, но они схожие
    1 - переписать личный кабинет в плагин для WP.
    2 - Личный кабинет это отдельный ресурс, сайт на WP тоже существует отдельно. Взаимодействие между ними происходит через БД. Нужно написать еще модуль который будет синхронизировать БД WP и личного кабинета, либо лучший вариант переписать модуль личного кабинета на стандартную структуру БД WP. - это по сути равносильно сделать плагин.
    Ответ написан
  • Как переопределить сортировку товаров?

    trampick
    @trampick
    Веб-разработчик
    В таком ключе как у Вас нужно отлавливать момент когда пользователь находится именно в категории.
    Можно сделать через хук
    add_action( 'pre_get_posts', 'filters_modify_main_query' );
    function filters_modify_main_query( $query ) {
    	if ( strpos( '_' . $_SERVER['REQUEST_URI'], '/product-category/' ) > 0 && $query->is_main_query() ) {
               //change query
            }
    	return $query;
    }

    Ну и где change query прописать порядок по id.
    Лучше реализовать это через метаполе position в товаре и указать сортировку по метаполю. Это будет наиболее правильный вариант.
    В вашем же случае, если указывать в метаполе таксономии порядок без костылей не обойтись.
    Ответ написан
    Комментировать
  • Почему не работает поддержка синтаксиса wordpress в phpstorm?

    trampick
    @trampick
    Веб-разработчик
    Сам работаю постоянно с wp в phpstrom. Что бы включить библиотеку wp для шторма необходимо что бы в директории проекта были все файлы и каталоги wp(wp-content,wp-admin,wp-includes). Если чего то не будет, то библиотека не заработает.
    Ответ написан
    6 комментариев
  • Создание цикла в цикле с разными $args?

    trampick
    @trampick
    Веб-разработчик
    Сначала делаете 1 запрос и необходимый результат сохраняете к примеру в массив. После этого не забудьте сделать wp_reset_postdata();

    Затем запустите foreach по массиву и генерируйте необходимые запросы wp_query, не забывая юзать wp_reset_postdata();

    Это ответ на Ваш вопрос. Я бы советовал как то по другому организовать сам алгоритм. Так как этот будет очень ресурсоемкий.
    Ответ написан
    Комментировать