• Ajax Загрузка комментариев WP?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Попробуйте
    global $withcomments;
    $withcomments = true;
    comments_template();
    Ответ написан
  • Почему после первого цикла второй работает неправильно?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Учим матчасть:
    wp_reset_postdata()
    wp_reset_query()
    Ответ написан
    Комментировать
  • Как сделать доступ к файлу по определеному url и нужно ли это?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Ответ уже как бы есть, я только не могу понять, зачем городить сторонние файлы, делать редиректы и тд. Есть же такая удобна штука как хуки. Например - init, template_redirect, template_include. Вместо целого файла регистрируете query_var, можно даже rewtie_rule свой (example.com/auth/). При попадании на этот урл в хуке init или template_include стартуете авторизованную сессию, если есть токен, делаете что надо (например сверяете токен с таковым в таблице wp_usermeta), дальше отправляете на нужную страницу (откуда начали авторизацию). Гибкость фантастическая. И все - родные фичи WP, а не костыли. Да, это более advanced topic, чем просто сторонний файлик, но и более гибкий в результате, более надежный и безопасный. Вот в вашем случае, например, а что, если токен левый отправить? Проверки есть? Какая-нибудь API key pair есть? Так чтобы один ключик на том сервисе где логинитесь, а второй - на самом сайте. Понятно, что вы детально не раскрыли механизм авторизации, но со стороны здесь просматривается не очень надежное место.
    Ответ написан
    6 комментариев
  • Как сделать что бы вариации товара в WooCommerce отображались изображением?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Плагин:
    www.woothemes.com/products/variation-swatches-and-...

    Документаци к нему:
    docs.woothemes.com/document/woocommerce-color-and-...

    Бесплатные плагины, найденные за пару минут гугления:
    https://wordpress.org/plugins/smart-variations-images/
    https://wordpress.org/plugins/woocommerce-molds/
    Ответ написан
    Комментировать
  • Как добавить сохранение дополнительных полей при регистрации?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Хуки, елки ж палки! А именно - user_register. Код из документации:
    add_action( 'user_register', 'myplugin_registration_save', 10, 1 );
    function myplugin_registration_save( $user_id ) {
    
        if ( isset( $_POST['first_name'] ) )
            update_user_meta($user_id, 'first_name', $_POST['first_name']);
    
        // и другие кастомные действия
    
    }
    Ответ написан
    Комментировать
  • Какие существуют готовые решения для синхронизации онлайн и офлайн версий Wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    WP Sync DB + WP Sync DB Media Files
    Revisr и другие всякие деплои, их масса.
    Ответ написан
    Комментировать
  • Как получить текущего пользователя wordpress, не используя стандартные функции?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Текущий юзер - это тот, который авторизован WordPress'ом. Айди - в сессии, сам юзер в таблице wp_users и wp_usermeta. Данные из таблицы можно получить, вопрос в том, как получить айди текущего WP юзер вне WP? Я бы использовал ajax. Стучитесь в файл, который находится внутри среды WP, и получайте от него данные текущего юзера.
    Ответ написан
    1 комментарий
  • Как редактируя реквизиты оплаты обновлять основные поля пользователя?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Используйте хуки.
    "Реквизиты оплаты и доставки" - вы про WooCommerce или что? Если WooCommerce - у него тоже масса своих хуков.
    Ответ написан
    Комментировать
  • Какая из баз данных будет работать с таблицей в 1 петабайт и 3000 миллиардов записей?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Про Big Data слышали? На таких масштабах забудьте про классическую БД.
    Ответ написан
    2 комментария
  • Как правильно построить структуру бд для мультиязычных записей?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Архитектура мультиязычных данных - штука занимательная. Там есть варианты и нюансы. Почитайте для начала вот эту статью.
    Ответ написан
    Комментировать
  • Как загрузить превью картинки с текстом и отправить на сервер?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    jsfiddle.net/hardiksondagar/t6UP5/light - пример предпросмотра картинки перед загрузкой, и загуглите "javascript preview image before upload".

    Что касается остального - слишком много действий, задача не на 3 строчки кода. Наймите специалиста или разбивайте вопрос на более детальные участки. А то вы хотите чтобы вам прям загрузчик целый написали, да еще и без понимания что там у вас на сервере.
    Ответ написан
    2 комментария
  • Рассуждение на тему кастомных тегов. А почему бы и нет?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Несколько лет назад за этот вопрос бы покрутили пальцем у виска, но мода на семантичность ушла, как и ушла когда-то мода на XHTML и валидаторы.


    1. И сейчас тоже крутят у виска, что вполне нормально.
    2. Мода на семантичность никуда не уходила, просто семантика уже давно стала стандартом де-факто и никто просто не орет об этом на каждом углу.
    3. Моды на XHTML в общем-то и не было, действительно валидный XHTML (который fatal'ы бросал из-за разметки, ага) мало кто и мало где использовал в реальности.
    4. Валидаторы никуда не делись, опять же, это стандарт де-факто.
    5. Вы еще забыли про Schema, ARIA и прочее. Только не называйте, например, accessibility - модой. А то люди у виска еще долго будут крутить и смотреть на вас косо.
    Ответ написан
    Комментировать
  • Как у вас организована командная работа?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Slack, Trello, GitHub & BitBucket. Местами skype и почта.
    Ответ написан
    Комментировать
  • Как правильно сменить кодировку базы данных Wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Доступ непосредственно к MySQL у вас вряд ли есть, так что используйте PHPMyAdmin или HeidiSQL. Синтаксис команд:
    ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_general_ci;
    ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
    Ответ написан
    2 комментария
  • Что значит "натянуть HTML-шаблон на WordPress"?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Означает ли фраза "натянуть HTML-шаблон на WordPress" что в итоге должен получиться полнофункциональный сайт под управлением WP?

    Да, именно это и означает. Это означает что нужно взять статический html, разбить на php-шаблоны (header.php, footer.php, sidebar.php, index.php, archive.php, single.php, page.php, search.php, 404.php и так далее). В самих шаблонах все динамические данные и все, что "захардкожено" перевести на соответствующие template tags, подключить вывод контента (через WordPress Loop, Widgets и тд). Поставить и настроить нужные плагины или дописать свой кастомный код (в functions.php или в свой собственный плагин(ы)) чтобы функционал был именно такой, как надо по ТЗ. Но эта часть (кастомный функционал) уже начинает выходить за рамки "натянуть шаблон".

    В общем, на выходе после этой "натяжки" у вас вместо статического html должен быть работающий динамический сайт, контент которого клиент может редактировать в админке, и все изменения будут сразу отображаться на сайте.

    И еще вот этот мой ответ почитайте.

    И чуть-чуть под другим углом спрошу: при покупке готовой WordPress темы и ее установки на WP получится ли готовый сайт под управлением WP?


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

    Поэтому, действительно получить хорошую, качественную работу на базе WordPress можно только в одном случае - заказать под конкретно свои задачи у опытных wp-разработчиков. Только помните, разработчики - это php-программисты, которые умеют писать кастомный код под WordPress. Программисты, которые хорошо знают именно внутренности WordPress, и пишут под него, а не свои костыли сверху и сбоку. И не путайте с имплементаторами (не программисты, а "вебмастера", которые умеют найти говноплагин и установить его, максимум - пофиксить стили или копипастой вставить какой-то код, найденный в гугле).

    То есть фактически получается что техзадание заменяется шаблоном (макетом)?


    Нет. Если функционал хоть немного выходит за пределы стандартных (встроенных) фич WP - дальше придется допиливать руками, устанавливать (и часто затачивать) чужие плагины или писать свои. Готовых пллагинов - десятки тысяч, но далеко не все нормально написаны и на 100% подойдут под ваши задачи. В общем, для сайта, чуть сложнее чем блог, будет достаточно много кастомной работы, и для нее необходимо готовить ТЗ. Если кто-то вам говорит, что может за пару часов засетапить любой сайт на WP и сделать что угодно за 500-1000 рэ - вам попался имплементатор, который нихрена не понимает из того что делает, и все, что он выдаст - это очередной говносайт, проблем с которым будет больше, чем пользы.
    Ответ написан
    1 комментарий
  • Шаблонизаторы Wordpress и Joomla. Как это выглядит на "пальцах"?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    У WordPress нет шаблонизатора в его общепринятом понимании - как Smarty, Twig, Dwoo, Savant и тд. Есть набор шаблонов (templates), которые WP подключает / использует в зависимости от того, что было запрошено. Есть четкая логика использования этих шаблонов.

    Сами эти шаблоны - html-файлы, в которых все динамические данные (контент страниц/постов, ссылки, меню, аватары, комментарии, заголовки страниц, медиафайлы и тому подобное) вставляются с помощью Template Tags. Можно создавать и свои. По сути Template Tags - это php-функции, которые выводят или возвращают определенные значения.

    Еще один важный момент - есть плагины и файл functions.php - эти части призваны отвечать за функционал. Например, функция в functions.php получает какие-то данные из базы, обрабатывает и возвращает результат. Этот результат можно вывести в шаблоне.

    Также, одними из важнейших составляющих (и секретом гибкости WordPress) являются хуки - фильтры и экшны (filters and actions). Их, кстати, тоже можно свои создавать.

    Документация, она же Theme Developer Handbook.

    А также:

    https://codex.wordpress.org/Theme_Development
    https://codex.wordpress.org/Function_Reference
    https://codex.wordpress.org/Plugin_API
    Ответ написан
    2 комментария
  • Можно ли передавать дата-параметрами большиен данные?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    В HTML5 такого лимита нет. Но, все же, все эти данные браузер держит в памяти, если туда романы писать - браузер рано или поздно лагать начнет. В вашем случае - не заморачивайтесь, все норм. Хоть абзацы туда вставляйте.

    The algorithm described below places no limit on the depth of the DOM tree generated, or on the length of tag names, attribute names, attribute values, text nodes, etc. While implementors are encouraged to avoid arbitrary limits, it is recognized that practical concerns will likely force user agents to impose nesting depth constraints.


    В HTML4 лимит был, но весьма большой. Точный размер не помню.
    Ответ написан
  • Как сделать деплой на прод для Wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Ну первоначальный сетап придется сделать вручную, не вижу смысла писать какую-то автоматизацию. Зашли в админку сети, создали новый сайт сети, назначили админов, активировали нужные плагины. Доустановили плагины, которых еще нет в сети (в том числе site-specific плагины), тему. Ну а дальше уже есть варианты..

    У нас так - кастомные темы и плагины висят в git-репозиториях, над ними обычно работает несколько человек. На сам сервер они заливаются не через админку WP или FTP, а через SSH делается git clone репозитория. Соответственно, в процессе дальнейшей работы тимлид мерджит код в одну ветку и релизит. Тут есть возможность и автодеплой сделать, или вручную.

    Да, и еще. Если есть возможность держать локальное зеркало вашего мультисайта, то можно использовать плагин WP Sync DB. Несмотря на название, он синхронизирует не только базу, но и файлы.

    Еще есть такая крутая штука как WP CLI.

    Есть плагин Revisr. Тоже крутая штука.
    Ответ написан
    2 комментария
  • Как в WordPress на странице записей выводить одну определенную запись?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Тема вроде как и решена, но не совсем корректно. Оставлю для будущих поколений.

    dm: если конкретно этот, основной цикл надо видоизменить, то делается это так:
    function my_modify_query( $query ) {
        // это главный запрос, мы не в админке, мы на архивной странице
        if ( $query->is_main_query() && ! is_admin() && is_archive() ) { 
            // конкретный пост по его ID
            $query->set( 'post__in', array(345) ); 
            // Устанавливать можно любые свойства объекта WP_Query
        }
    }
    add_action( 'pre_get_posts', 'my_modify_query' );


    Документация:
    на WordPress Codex (англ).
    на WP-Kama (рус)
    Ответ написан
    Комментировать
  • Какие основные минусы есть у WooCommerce для B2C интернет магазина? и какой движок самый лучший для интернет магазина?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Самый лучший - тот, который приносит много денег и который недорого обслуживать (а значит тот, который очень хорошо знают ваши разработчики).

    Минусы у WooCommerce, конечно, есть. Как и у любого другого движка. Вот только у меня будут свои минусы, у Пети другие, а у Маши третьи. Что за магазин, ниша, товары? География? Особенности?

    Из общего - в WC весьма непростая для понимания и управления на первых порах такая штука как вариативные товары. С другой стороны, если ее освоить как положено - штука весьма мощная и полезная. Еще WC сам по себе бесплатный, но очень много полезных и удобных инструментов - платные, но это нормально с учетом того, что магазин как бы деньги приносит, и жалеть Х$ на оптимизацию работы и/или повышение продаж - грешно. Плюс, разрабы должны хорошо знать и WordPress, и WooCommerce, это сужает круг специалистов (хотя их все равно не меньше, чем по PrestaShop, например)...

    В общем, дайте больше деталей, конкретный случай.

    Да, еще забыл упомянуть. Не так давно WooCommerce был куплен компанией Automattic, которая, как многие знают, владеет самым крупным в мире сервисом WordPress.com, платформой WordPress VIP и многими другими интересными вещами.
    Ответ написан
    Комментировать