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

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Вы не понимаете архитектуру WP, те 200, где вы ожидаете 404 - абсолютно корректны. Это не баг. Например:

    site.ru/category/page/page/page/page - категории нет - получаем 200

    В данном случае ответ 404 и соответствующая страница и не должна быть, вы запросили контент по параметрам, и вместо 404 WordPress вам выдаст страницу, на которой написано - по вашему запросу ничего не найдено. Это динамика. Представьте ситуацию - интернет магазин. Вы ищете товар по фильтрам. Выбрали один фильтр, отфильтровали товары. Второй - тоже отфильтровали. Третий фильтр - и вам пишет "товаров не найдено". Это нормальная работа, 404ю отдавать здесь некорректно.
    Ответ написан
  • Есть ли готовый модуль WordPress, фильтр, который сохраняется и отображается на всех страницах?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Если честно, то весьма грубый и сырой use case. Фильтрация на текущую сессию или навсегда? Как происходит сборс фильтров или выход на уровень выше? Как происходит смена фильтров? Вообще, такой концетп называется faceted search / поиск с импользованием фильтров, юзается на всех адекватных интернет-магазинах и в каталогах (в том числе по недвижимости). Это уже давно стандартный паттерн, и не надо ничего придумывать. Плагинов для этого паттерна - масса, как платных, так и бесплатных. В том числе и на Тостере обсуждалось не раз, я сам оставлял ссылки раз 5. Так, из памяти:

    https://facetwp.com/
    https://searchwp.com/
    https://wordpress.org/plugins/search-by-wp-search/...
    https://wordpress.org/plugins/webkite/screenshots/
    https://wordpress.org/plugins/wp-ultimate-search/
    Тут еще https://wordpress.org/plugins/search.php?type=term...

    Но у всех этих решений есть один нюанс. Если фильтрация идет только по таксономиям (рубрики, теги, кастомные таксономии) - тогда без проблем. Если нужно делать фильтры по custom post metadata (метаданным), то все они будут медленные, чем больше база - тем медленнее работа. Дело в том, что метаданные хранятся в таблице без индексов, и любой запрос требует перебора всех строк в таблице. Если сайт большой, используется много метаданных, то есть только одно решение - установка и настройка на сервере Elastic Search и поиск уже через него. Но это для продвинутых.
    Ответ написан
    Комментировать
  • Какой слайдер посоветуете для темы "mystile" который легко ставится,и настраивается?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Если вы ищете именно плагин "установил, поклацал настройки и все заработало", то должен подойти любой из популярных плагинов с высокими оценками на WordPress.org/plugins

    Если надо сделать аккуратно, качественно, и чтобы работало быстро - Owl Carousel, Slick, Slidejs или другой современный скрипт, подверстать и подключить вручную.
    Ответ написан
    6 комментариев
  • На какой cms быстрее всего сделать сайт по продаже курсов?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    На той, которую лучше всего знаете вы или тот разработчик, которого вы наймете. CMS, CMF - это всего лишь инструмент. С его помощью можно сделать все, что угодно. И чаще всего в реальной жизни ограничения и грабли возникают не из-за ограничений CMS, а в силу недостаточной квалификации / ровности рук разработчиков.

    Что касается WordPress - на его базе как раз есть не один подобный проект. Есть готовые платные и бесплатные решения именно для подобных сайтов. На вскидку я вижу 2-3 способа, как это реализовать. Возьмете Drupal - там выше порог входа, больше углубляться в программную часть надо (сам по себе Drupal для таких кастомных проектов очень даже неплох). Джумла - адский треш. Это если по популряным CMS пройтись. Готового решения, так чтобы скачать и запустить вы не найдете. В любом случае придется пилить под себя, и WordPress, учитывая наличие всех упомянутых вами модулей, мне кажется оптимальным решением. И не говорите, что он "слабоват", если не понимаете о чем речь.
    Ответ написан
    Комментировать
  • Есть сайт на вордпресс(с woocommerce) на главной странице есть строка "recent products",как изменить ее на наши продукты?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Да зачем же через код заморачиваться, установите Loco Translate - и будет вам счастье.
    Ответ написан
    3 комментария
  • Как изменить и добавить поля в корзине Woocommerce?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    По первому вопросу - смотрите код, ищите хуки и фильтры. Направление в котором копать (кроме документации, конечно же):
    stackoverflow.com/questions/21709826/woocommerce-o...

    По второму - billing address и shipping address - это два разных адреса. Биллинг - это адрес плательщика. Шиппинг - адрес куда доставить. Первый всегда один и тот же будет при повторных покупках, второй может меняться - заказать доставку в офис, родителям домой, девушке на работу и т.д. - вариантов масса. При первой регистрации надо заполнить оба адреса, во второй раз же billing уже будет заполнен. Чтобы сделать процесс удобнее для покупателя, есть опция "галочка - использовать адрес биллинга для доставки". Не помню только это родная фича WooCommerce или есть для этого плагин. Но точно есть - посмотрите настройки WC и поищите плагин через админку, если в настройках не найдете.
    Ответ написан
    2 комментария
  • Как группировать столбцы в tablepress для wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    TBODY, THEAD, scope="row" о прочие прелести вам в помощь. Это еще с HTML4 вообще-то.

    fantasai.tripod.com/qref/HTML4/tables/tbody.html
    Ответ написан
    Комментировать
  • Как правильно подключать javascript и дополнительные стили к wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Запомните несколько простых правил.

    1. Никогда не используйте jQuery из стороннего источника (например, Google CDN). НИКОГДА. И другие библиотеки тоже. Кроме того, чаще всего не нужно jQuery грузить принудительно, достаточно для своего кастомного скрипта указать аргументом dependency значение array( 'jquery' ).
    2. Скрипты и стили подключаются ТОЛЬКО через функции wp_register_style() / wp_register_script() и wp_enqueue_style() / wp_enqueue_script(), вызов функций группируется в одну функцию, которая вешается на соответствующие хуки. Как правильно делать - написано в документации.
    3. Не обязательно подключать все вручную. Если вы правильно зарегистрировали ваши скрипты и стили (функциями wp_register_*), то можете просто подгрузить только один свой кастомный срипт (main.js например), а к нему все остальные указать в виде зависимостей (как и jQuery в п.1). Кроме того, можно (и нужно) подключать скрипты и стили только там, где они нужны. Например, если слайдер у вас только на главной, оберните его подгрузку в if( is_home() ).
    4. На продакшне убирайте ?xxx (версии скриптов и стилей), используйте плагин типа WP Better Minify для минификации и конкатенации скриптов и стилей.

    Кажется все.
    Ответ написан
    4 комментария
  • Как перенести записи из modx в wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    MODX умеет экспортировать в какой-нибудь JSON, XML, CSV? Если да - экспортируйте. Лучше всего в CSV. Для WordPress есть плагины импорта CSV, с помощью которых сможете распарсить данные, сделать маппинг полей на структуру WP и импортировать данные порциями.
    Ответ написан
    Комментировать
  • Как увеличить количество символов в описании товара woocommerce?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    тема WooCommerce использует свой шаблон со своим layout. Определяйте, какой шаблон используется на этой странице (установите плагин Query Monitor, среди отладочных данных он покажет и какой шаблон подгружен). Открывайте шаблон, ищите нужный фрагмент. Это будет в цикле (WordPress Loop), там будет или нужный код, или вставка еще одного шаблона - тогда надо перейти уже к нему. В общем, надо докопаться до того места, где прямо прописано the_excerpt() или кастомная функция, которая и выводит этот текст. Далее смотрим, какие аргументы у нее, ищем в functions.php или других функциональных файлах (не шаблонах) нет ли где-нибудь изменения поведения функции the_excerpt или той кастомной функции, которая выводит данные. Короче, найдите ту функцию, которая выводит этот текст и добавьте в вопрос ее код. А дальше мы уже подскажем, что на что поменять.

    Написал так же сложно, как и ваш вопрос)) но по другому не представляю, как вам еще можно объяснить. Судя по всему, вы не программист, и хоть данная задачка простая, надо для начала добраться до кода.
    Ответ написан
  • Можно ли сделать так же на Wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Вы про этот список ссылок на версии игры? Это обычный список объектов (предполагаю, постов или custom post type), который выводится в html обычным списком OL, но обернут в div с фиксированной высотой и принудительной прокруткой (overflow-y: scroll).

    Уточните, что вам нужно - получить список из БД средствами WP или как эти результаты вывести в HTML именно в таком виде.
    Ответ написан
  • Как изменить путь до Uploads?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Пробовал решить эту проблему, создавая свой skeleton с WP и необходимой базой функционала. Мне тоже удобнее было бы вынести загрузки в отдельную папку, в идеале вообще унести их на примаунченый диск. Использовал как раз тот патч, который по ссылке. В общем, работать то я его заставил, но постоянно то там то сям выползали нежданчики, пришлось вернуть как было. На некоторых сайтах все же реализовал некое подобие своего CDN, подробнее тут и в гугле.
    Ответ написан
  • Wordpress как поставить на плагин поиска по сайту?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Есть хорошее решение, Elastic Search. Но этот путь более сложный - потребуется установка самого движка на сервере, внедрение тоже посложнее будет, хотя и есть готовые плагины для интеграции с WordPress. Но результат того стоит.
    Ответ написан
    Комментировать
  • WP advanced custom fields - выводит не все поля! Лимит?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    ACF, WooCommerce и другие функциональные настройки вполне могут приводить к тому, что без правильного тюнинга серверного софта и кеширования WordPress начинает потреблять много памяти, упираться в самые разные лимиты - в данном случае, в лимит переменных. Решается на уровне php.ini, выше уже скинули ссылку. Если это shared-хостинг, то у вас проблема, Хьюстон. Скорее всего, увеличить данное значение хостер не позволит и предложит уйти на более дорогой тарифный пакет или VPS. Начинайте читать что такое VPS, с чем его есть и тд.
    Ответ написан
  • Что лучше использовать в качестве блока комментариев на сайте: Disqus или комментарии ВК?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Я если использую комменты, то всегда родные WP с небольшими модификациями - авторизация через соцсети, уведомление о комментах, отключение лишних полей и тд. Если клиент настаивает на внешней системе - для запада и всего не-школоло - Disqus. Если же аудитория четко вконтактиковская - тогда модуль ВК.

    Причин на использование встроенной системы комментов несколько:

    1. Скорость загрузки и возможность кеширования
    2. Возможность индексации комментов и поиска по ним (в том числе и поисковики могут индексировать)
    3. Более полный контроль над самими комментами, их дизайном, функционалом формы комментирования (например, разрешить загружать картинки или вставлять oEmbed)
    4. Возможность использования виджетов "последние комменты" и тд
    5. Возможность использовать количество комментов как одну из метрик для определения популярности постов
    6. Отсутствие блокирующих внешних скриптов и запросов. Стараюсь вообще избегать использования внешних запросов с целью сокращения времени загрузки страниц
    7. ... и другие мелкие выгоды, в зависимости от типа сайта

    Что касается спама, то Akismet прекрасно справляется со своей задачей.
    Ответ написан
    Комментировать
  • Как вывести значение активного элемента списка меню на странице (в main)?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Можно. Даже несколько вариантов. Например, вот так:

    Получаем имя текущего пункта меню:
    function my_get_menu_item_name( $loc ) {
        global $post;
        $locs = get_nav_menu_locations();
        $menu = wp_get_nav_menu_object( $locs[$loc] );
        if($menu) {
            $items = wp_get_nav_menu_items($menu->term_id);
            foreach ($items as $k => $v) {
                // Проверяем, оно или не оно
                if ($items[$k]->object_id == $post->ID) {
                    $name = $items[$k]->title;
                    break;
                }
            }
        }
        return $name;
    }


    Или вот так - даже удобнее:
    wordpress.stackexchange.com/questions/16243/how-to...
    Ответ написан
  • Как увеличить скорость работы WP?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Медленно, потому что идет перебор по всем строкам в таблице wp_postmeta, в которой отсутствуют индексы. И если у вас постов 5-6 тыщ, то postmeta у вас будет в разы больше. Но все равно такая скорость - это слишком долго. Видимо, беда все-таки и в сервере. Упомянутый где-то в комментах Sphynx решает задачу со сложными запросами по метаданным.
    Ответ написан
    Комментировать
  • Почему админка wordpress может не сохранять данные?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Если не появляются какие-то метабоксы а кнопка вместо публикации предлагает отправить на модерацию - боюсь, дело не в обновлении WordPress, а в роли вашего пользователя. Вы уверены, что вошли под администратором?
    Ответ написан
  • Сайт в сайте (iframe) на wordpress - как сделать?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    А зачем сайт в сайте? Iframe это зло :)
    Если надо получить кусок сайта, само тело - Ajax в помощь. Банальная функция jQuery.load() позволяет загрузить конкретный фрагмент html (по ID) с удаленной страницы.
    Ответ написан
    2 комментария
  • Как разобраться в темах для Wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Читайте WordPress Codex и уроки на Tuts+ в рубрике WordPress.

    То, что у WP нету человеческого шаблонизатора, это, к сожалению, печальный факт. При всей моей любви к WP. Но тот "недошаблонизатор", который есть, изучить и освоить очень легко. Правда, без хотя бы базовых знаний PHP будет трудно - придется учить основы PHP на ходу.

    UPDATE: Есть плагины, которые подключают к WP шаблонизаторы от Laravel, Symfony, тот же Smarty кажется тоже видел. Найти их в родном репозитории не проблема, все они рекламируют, что можно работать с нормальной разметкой для шаблонов. Но сам не пользовался, поэтому подробнее не подскажу.
    Ответ написан
    4 комментария