Ответы пользователя по тегу WordPress
  • Домен третьего уровня на другом сервере и хостинге, с другим ip. Можно ли настроить?

    kumaxim
    @kumaxim
    Web-программист
    Схема, которая работает у меня с 12 серверами:
    1. Домен вида lalala.com делегирован на Яндекс, который держит почту для этого домена и имеет панель управления DNS-записями
    2. Когда я создаю новый VPS сервер, то в редакторе DNS добавляю 2 записи типа "А" с ip адресом этого сервера
    3. Дописываю конфиги NGINX'a для работы с этим доменом
    4. Ждем 10-30 минут обновления DNS
    5. Готово


    Запись типа "А" для твоего поддомена будет выглядеть одним из способов
    1. subdomain A 111.222.32.91
    2. subdomain.lalala.com. A 111.222.32.91

    Обрати внимание на точку в конце домена во втором случае. Я встречал оба варианта на разных DNS-сервисах и панелях. Конкретно для своей Vesta поищи в сети мануал про работу с DNS-записями, т.к. я с этой панелью не сталкивался.
    Ответ написан
    Комментировать
  • Как wordpress разбить на разделы?

    kumaxim
    @kumaxim
    Web-программист
    Шаг 1
    Посты => Категории => Создать новую
    Добавляешь пару категорий

    Шаг 2
    Посты => Создать новый
    Добавляешь пару постов

    Итог
    domain.com/category-slug/post-title-slug
    Сюда можешь добавить какие-нибудь суффиксы, префиксы и т.д. Смотри в настройках

    Тебе тут никакой чистый PHP не нужен, то что ты описал, если я верно понял, уже лет 10 как в WP работает из коробки.
    Ответ написан
    Комментировать
  • Какой плагин выбрать для фильтра по рубрикам в WP или как научиться самому писать фильтры?

    kumaxim
    @kumaxim
    Web-программист
    Подход в фильтрах только один - использовать кастомный WP_Query.
    В кодексе, вроде бы, неплохо это все объясняется. В качестве примера посмотри плагин Category Sticky Post
    Ответ написан
    2 комментария
  • Как вывести одинаковую часть кода HTML на разных страницах?

    kumaxim
    @kumaxim
    Web-программист
    Используйте get_template_part
    Ответ написан
    Комментировать
  • Как реализовать интересные факты на сайте Wordpress?

    kumaxim
    @kumaxim
    Web-программист
    Ключевая фраза для гугления: wordpress random post widget

    Плагин Advanced Random Posts Widget вроде бы как подходит под Вашу задачу, но глубоко я его не смотрел.

    Далее, думаю, все просто: создаете 10-30 постов со своими "интересными фактами" и каждому из них присваивается тег/категорию. Потом по этому тегу/категории выводите записи в нужно месте
    Ответ написан
    2 комментария
  • Лендинг на WP без плагинов?

    kumaxim
    @kumaxim
    Web-программист
    Для начала заходите в админку. Далее следуете пунктам ниже

    1. Создать пару тегов, например "Портфолио", "Работы", "Наша команда" и т.п.
    2. Создать необходимые посты и присвоить им эти самые теги
    3. В шаблоне создаем кастомный WP_Query, где выбираем посты по нашим тегам
    4. Оформляем нужным css + html и проверяем результат в браузере


    Также Вам необходимо почитать вообще про создание тем, например в Theme Handbook
    Ответ написан
    1 комментарий
  • Как сделать англоязычную версию сайта?

    kumaxim
    @kumaxim
    Web-программист
    Используй polylang, который тебе уже рекомендовали. Отличный плагин, на мой взгляд.

    И да, один совет - не используй определение по IP для подстановки языка сайта. Используй локаль браузера.
    Ответ написан
    Комментировать
  • Почему сайт на WP начал жрать процессорную память?

    kumaxim
    @kumaxim
    Web-программист
    Открывай логи nginx/apache/php-fpm и смотри что запрашивают твои пользователи.
    Можешь использовать logstash в качестве вспомогательного инструмента.
    Ответ написан
    6 комментариев
  • Как Правильно верстать под тему divi 3.0?

    kumaxim
    @kumaxim
    Web-программист
    Какой "сверстать на локалке"??? Вы о чем вообще?

    Divi - визуальный конструктор тем, т.е. Ваша задача, по большому счету, заключается в том, чтобы понять на какие кнопочки нужно нажимать и в какой последовательности. Вот и все. Максимум что нужно будет сделать руками - какой-то сильно не стандартный JS вынести в отдельный файл и подключить.

    У самого Divi на сайте вроде достаточно исчерпывающая документация по их продукту.
    Ответ написан
    Комментировать
  • WordPress post type карусель записей?

    kumaxim
    @kumaxim
    Web-программист
    Тебе нужно копать в сторону WP_Query

    Хочешь выбрать только посты/страницы/свой_тип? ОК, определи post_type => '%name%' в параметре запроса.

    Хочешь отсортировать все по дате, заголовку и т.п. - нет проблем, определи order & orderby параметры.

    В целом рекомендую ознакомиться с документацией по ссылке, которую я дал. Там все предельно ясно. Обрати внимание только на одну деталь - если у тебя на странице два раза отрабатывает WP_Query, т.е. есть основной вывод постов + "горячие новости" в сайдбаре или менюшка где-то на странице встречается, тогда после цикла обязательно добавь wp_reset_postdata(). Любой твой кастомный WP_Query модифицирует свойства в основном WP_Query. Эта функция открывает эти изменения

    Насчет "хочу слайдер" по типу записей.

    Выбираем посты по типу
    $toster_posts = WP_Query(['post_type] => 'toster_type_post')
    Существуют ли записи с таким типом в БД?
    if ( $toster_posts->have_posts() ) {....}
    Если существуют, тогда работаем с ними:
    while( $toster_posts->have_posts() ) {
    // Инициализировать глобальные переменные WP
    $toster_posts->the_post(); 
    // Отобразить заголовок
    the_title(); 
    // Отобразить текст до <!-- read more -->
    the_exept(); 
    }

    Закончил свою обработку, восстанови глобальные переменные
    wp_reset_postdata()

    Про то, что все это можно свободно обрамлять HTML-ем думаю понятно.
    Ответ написан
    Комментировать
  • Почему после переноса появилась ошибка синтаксиса?

    kumaxim
    @kumaxim
    Web-программист
    Я тут недавно с битвы экстрасенсов вернулся... И вижу одно из пройденных ранее испытаний на Тостере :-)

    Твоя проблема лежит либо в настройках PHP, т.е. надо смотреть php.ini и все файлы, которые туда подключаются, либо у тебя нет каких-то модулей на продакшине, скажем mb_string'а и т.п.

    Способ решения быстрый:
    1. Идем в консоль на локальной машине и выполняем php -i > localhost-php-info.txt
    2. Идем в консоль на продакшине и выполняем эту же команду
    3. Сравниваем оба файла через diff(утилита для поиска отличий в файлах в Linux)
    4. Корректируем настройки по мере необходимости


    Если загуглить твою ошибку "Unexpected tag", то выдача говорит о том, что она чаще всего встречается при использовании Twig от Symphony. Смотри чего не хватает этой либе и доставляй на продакшн.
    Ответ написан
    Комментировать
  • Wordpress: Как получить ID текущего пользователя в виджете?

    kumaxim
    @kumaxim
    Web-программист
    Данные пользователя инициализируются на хуке init, а плагины свою логику выполняют на хуке plugins_loaded, который срабатывает раньше чем init.

    Первое что тебе нужно сделать - посмотри хронологию загрузки хуков Wordpress либо поставь плагин Query monitor(вообще полезный плагин для разработчика).

    Второе - определись где и для чего тебе нужно вытаскивать ID юзера. Если у тебя виджет в личном кабинете на фронте, тогда смело можешь вешать свою логику с get_current_user_id() на хук template_redirect и ты получишь ID юзера без проблем.
    Ответ написан
    1 комментарий
  • Работа wordpress + php7 + postgres?

    kumaxim
    @kumaxim
    Web-программист
    Wordpress не дружит с PostgreSQL. Используйте MySQL
    С PHP7 все нормально, проблем на двух моих сайтах не возникает.
    Ответ написан
  • WordPress Ubuntu 16.10 права на файлы?

    kumaxim
    @kumaxim
    Web-программист
    В каком режиме PHP работает?
    Если mod_apache, тогда на wp-content/upload выставляй 777 и будет все ОК.
    Если php-fpm, тогда надо редактировать php.ini. Смотри опцию upload_tmp_dir. Должно быть что-то в духе /path/to/user-home-folder/tmp Также проверь от какого пользователя у тебя php-fpm работает.
    Как третий вариант, попробуй поставить на /tmp права 777.

    Если ничего не помогает, тогда добавляй в свой вопрос вывод phpinfo() и прикладывай php.ini.
    Ответ написан
    Комментировать
  • Как сделать мультистраничный сайт на WordPress?

    kumaxim
    @kumaxim
    Web-программист
    Одна страница на сайте = один пост в админке
    На странице редактирования поста добавь пару доп.полей с требуемой информацией

    Собственно каждый новый пост - это новый УРЛ на твоем сайте.
    Теперь весь вопрос сводится к тому, как автоматически создать 200-500 новых постов с требуемыми параметрами.

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

    kumaxim
    @kumaxim
    Web-программист
    Если у клиента пылает синим племенем уже все что только можно, тогда логика пишется в шаблоне, редактируются файлы ядра CMS-ки, втыкается какой-нибудь комбайн ради 2-3 фишек и т.д. Главное тут скорость, клиенту нужно чтобы что-то работало на утро. Изменять или поддерживать такое ПО слишком дорого и геморно, поэтому при необходимости что-то допилить или справить - эта версия выкидается.

    Более правильный подход - создавать модули и/или компоненты, которые добавляют на сайт какую-то конкретную фишку. Основное правило: одна фишка = 1 плагин. Посмотри в Википедии про GRASP и SOLID, я всегда исхожу из них про проектировании чего-то более менее серьезного и долго живущего. Это подход применяется, если сайт клиента будет долго жить либо если у сайта будет большое количество инсталяций на разных машинах под разным окружением, с не всегда всеми установленными модулями(имею ввиду модули PHP, например, libxml) т.д.

    По своему опыту могу сказать, что обычно всегда идет что-то среднее, причем в зависимости от квалификации разработчика больше смещено в сторону п.1 или п.2 при одинаковом времени.
    Ответ написан
    Комментировать
  • Как сделать поиск только по 1 категории на Wordpress без плагинов?

    kumaxim
    @kumaxim
    Web-программист
    Любой поиск в Wordpress - это созданный с требуемыми Вам полями объект WP_Query.
    Открывайте документацию на кодексе по его полям. Категория и поисковая фраза там точно была.
    Ответ написан
    Комментировать
  • При переносе сайта wordpress с denver на open server возникла проблема. В чем ошибка?

    kumaxim
    @kumaxim
    Web-программист
    В wp-config.php ищешь фразу в комментариях "For developers: WordPress debugging mode"
    Под ней будет определена константа WP_DEBUG, которую тебе нужно переключить из false в true. Также можешь определить ниже константу WP_DEBUG_DISPLAY как true.

    Вообще при возникновении необходимости дебажить Wordpress рекомендую обращаться к соответствующему разделу кодекса.

    После установки упомянутых мною констант в true, зайди еще раз на проблемную страницу и ты должен увидеть более исчерпывающую информацию о проблеме, которая позволит тебе разрешить ее. Чисто из опыта могу предположить что у тебя на втором сервере не установлено что-то из необходимых PHP-модулей. Похоже вообще на mod_rewrite или mod_headers, хотя не факт.

    А вообще для миграции WP между серверами есть замечательный плагин All in one Migration
    Ответ написан
    2 комментария