Ответы пользователя по тегу CMS
  • Как правильно вывести рубрики WORDPRESS?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    get_terms( $args );
    Документация: eng (официальная), рус. Примеры кода есть по ссылкам. Остается только вопрос как и где у вас хранятся картинки. Это плагин какой-то или кусочек кода из инттернетов, который вы вставили в functions.php?
    Ответ написан
    Комментировать
  • Где создать дневник / записную для работы (IT-сфера)?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    GitHub / BitBucket. В общем, репозитории (открытые и приватные), Gist'ы, Wiki для репозиториев. Обычный MarkDown, что очень удобно. Если уж сильно надо в виде сайта в какой-то момент - через Jekyll прогнать.

    А вообще если уж совсем с умом подходить и делать большую базу знаний - GitBook. Можно бесплатно у себя.
    Ответ написан
    Комментировать
  • Есть ли готовый модуль 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 и поиск уже через него. Но это для продвинутых.
    Ответ написан
    Комментировать
  • На какой cms быстрее всего сделать сайт по продаже курсов?

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

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

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

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

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

    Что касается спама, то Akismet прекрасно справляется со своей задачей.
    Ответ написан
    Комментировать
  • Какой движок выбрать для ИМ?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Если от мелкого до вполне крупного - WooCommerce очень даже неплох. Ну а если онлайн-гипермаркет уровня Enterprise - тогда лучше что-то узкоспециализированное. Тот же Magento на западе не просто так популярным стал.
    Ответ написан
    Комментировать
  • Как вставить в wordpress калькулятор, на определенную страницу?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Есть несколько вариантов:

    1. В шаблоне page.php (single.php если нету первого) ставим проверку is_page(id) и в ней соответствующий код
    2. В functions.php оборачиваем весь код в виде функции, функцию вешаем на шорткод, шорткод вставляем в визуальном редакторе на нужных страницах
    3. Пишем простенький плагин (или в functions.php) - перехватываем ID нужных страниц на уровне запроса и вставляем нужный код на лету - после the_content() или в подвале, в общем, где он должен быть
    UPDATE:
    4. В принципе, можно весь этот скрипт убрать из тегов script во внешний js-файл и добавить его в wp_enqueue_script() с соответствующей проверкой is_page(X)
    Ответ написан
    2 комментария
  • Выбор CMS для сайта о недвижимости?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    WordPress вполне себе подходит, тем более если с ним знакомы.

    https://wordpress.org/plugins/wp-property/
    https://wordpress.org/plugins/real-estate-listing-...
    https://wordpress.org/plugins/wprealestate/
    и вот этот очень привлекательно выглядит:
    easypropertylistings.com.au

    это так, первая страница гугла :)
    Ответ написан
    Комментировать
  • Самый оптимальный вариант для серверной части?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Если надо сделать быстро - только готовая CMS. При всей моей любви в WordPress, в данном случае взять специализированную типа OpenCart, PrestaShop и подобных. Под WordPress есть хорошие решения, тот же WooCommerce, но чтобы там что-то доделывать - нужно хорошо знать и PHP, и архитектуру WP + WC. Зачем лишние сложности?

    А еще есть другой вариант. Если вы не программист, а манагер / владелец этого магазина, то воспользуйтесь SaaS-площадкой, таковых на рынке масса. Через годик-другой работы магазина возможно перейдете на свое решение, возможно - нет.
    Ответ написан
    Комментировать
  • Как восстановить сайт WordPress Multisite-а, имея базу данных?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Проверьте wp-config.php, блок связанный с multisite. Также, смотрите .htaccess если у вас apache. Ну и сделайте в PHPMyAdmin SQL-поиск по всем таблицам на предмет вхождения /corporative. Результаты покажут оба варианта, возможно не везде поправили. И еще я бы ребутнул PHP, Memcached/Redis и MySQL, для верности. Может из кеша до сих пор инфа тянется.
    Ответ написан
    Комментировать
  • Какой есть удобная CMS для мобильной версии сайта?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    WordPress + JSON REST Api (пока это системный плагин, скоро будет в ядре).
    Сама админка имеет адаптивный дизайн, также есть мобильное приложение. Ну а REST Api позволяет общаться с проектом по JSON в оба направления.
    Ответ написан
    Комментировать
  • Почему работает запрос со взаимоисключающими параметрами?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Надо смотреть сам SQL запрос, который получился. Подозреваю, что у вас из-за оператора OR происходит что-то типа "если есть посты по этому tax_query - вернуть их, иначе - стандартные результаты". Могу ошибаться, но без самого SQL запроса дебажить нереально. Установите плагин Query Monitor - все решится за пару минут.
    Ответ написан
    Комментировать
  • Как использовать свою БД?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    WordPress позволяет использовать стороннюю таблицу wp_users, но тогда надо класс WP_Users переписать под свою структуру и данные (наследовать или заменить). Можно сделать свой oAuth сервер, один общий на все ресурсы - сайт, форум, WP. Во избежание дополнительных танцев с бубном над форумом я бы использовал BBPress - движок форума на базе WordPress. Он будет использовать тот же механизм юзеров, что и WP, а значит работы меньше.
    Ответ написан
    Комментировать
  • Как перевести произвольные строчки с помощью Polylang?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    У Polylang есть свои собственные маленькие функции, полезные для таких целей. Конкретно в этом случае, есть 3 варианта:

    1. Локализация строки обычным методом WordPRess - в шаблоне находим где этот текст и оборачиваем его в функцию _e() или __(). После этого делаем перевод строки в POedit, Как обычно.

    2. Локализация строки точно так же, как в п.1, только вместо внешнего POedit ставим плагин Loco Translate и переводим строку прямо в админке.

    3. Вместо функций _e() или __() используем функции pll__(), pll_e() вместе с pll_register_string() и переводим в админке WordPress на странице настроек Polylang. Документация.

    В любом случае, придется ковыряться в коде.
    Ответ написан
    2 комментария
  • WordPress: Как отсортировать новости по дате из Custom Content?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Нужно модифицировать запрос. Если это основной Loop - через хук pre_get_posts, если это кастомный Loop, то прямо в нем, естественно:

    /**
     * Custom loop с сортировкой по мета
     */
    $upcoming_args = array (
        'post_type'         => 'event', // тип поста, если стандартный, то 'post'
        'posts_per_page'	=> '20', // сколько записей на страницу
        'order' 		=> 'ASC',
        'orderby' 		=> 'meta_value', // сортировка по значению мета-поля
        'meta_key' 		=> 'date_from', // ключ (название) мета-поля
        'meta_query' 	=> array (
            array (
                'key'     => 'date_from', // ключ (название) мета-поля
                'value'   => date('Ymd'), // текущая дата, в формате хранимого значения, от нее будем проверять
                'compare' => '>=', // сравнение "больше или равно"
            ), 
        ),
    );
    $upcoming = new WP_Query( $upcoming_args );
    if ( $upcoming->have_posts() ) : 
        while ( $upcoming->have_posts() ) : $upcoming->the_post(); 
            // Здесь выводим посты
        endwhile;
    endif;
    wp_reset_postdata();
    ?>
    Ответ написан
    2 комментария
  • Wordpress multisite. Как можно выводить посты со всех поддоменов (мультисайтов)?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Читаем документацию к функциям switch_to_blog() и restore_current_blog().
    Ответ написан
    Комментировать
  • Как лучше организовать на Wordpress сайте подмешивание, вывод постов из других вордпресс сайтов?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Читать посты с других WP сайтов можно по RSS, а еще лучше - установить на всех сайтах JSON REST API. Тогда можно элементарно получать конкретные посты, целые архивы в JSON.

    Что касается подмешивания - тут есть нюансы. Само подмешивание сделать не проблема, в свойстве $posts объекта WP_Query хранятся все полученные из базы посты по текущему запросу. Плюс имеем такой же массив или объект, полученный в JSON с других сайтов. Приводим все к одному формату (объект или массив) и перемешиваем, выводим.

    Но тут всплывает несколько нюансов:

    1. Постраничная навигация будет работать некорректно, либо количество постов на страницах будет всегда больше, чем в настройках (ведь будут родные Х + сторонние У)
    2. Автор поста, метаданные (рубрика, метки и т.д.) постов с другого сайта в текущей БД отсутствуют, поэтому эти вещи лучше не выводить или выводить текстом (не ссылками)
    3. Еще по мелочам вылезет что-то

    Если делать Multisite - это удобнее, комфортнее, приятнее и т.д. Но там эта задача не будет сильно легче. У Multisite общая таблица пользователей, таблицы постов и метаданных - разные, у каждого сайта свои. Да, можно на лету переключаться на другой блог, запрашивать отттуда посты, возвращаться на текущий и перемешивать. Это вместо считывания постов с другого сайта по RSS или JSON. Но дальше те же нюансы. Есть решения по синхронизации метаданных (категорий, меток) между сайтами сети, но это все уже усложнение, не уверен, что это нужно в этом конкретном случае.
    Ответ написан
    Комментировать
  • Как сохранить пропорции картинок в WordPress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Не надо подключать всякие BFI_thumb, TinThumb и прочую ересь, я вас умоляю! У WP есть родные средства!

    Получить урл картинки:
    <?php wp_get_attachment_image_src( $attachment_id, $size, $icon ); ?>

    где $size - либо название размера (medium, large), либо массив из двух чисел - высота и ширина
    На выходе получите массив:
    [0] => url
    [1] => width
    [2] => height
    [3] => boolean: true if $url is a resized image, false if it is the original.

    codex.wordpress.org/Function_Reference/wp_get_atta...
    Ответ написан
  • Отображаются все комментарии под страницей (Wordpress), как их убрать?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Именно комментарии, именно все? Скорее всего в шаблонах косяки. Попробуй другую тему, стандартную какую-нибудь. У меня на /members выводится только список пользователей (мемберов), никаких комментов. Что для залогиненых, что для анонимных юзеров.
    Ответ написан