• Как узнать id категории находясь в ней вне цикла?

    cesnokov
    @cesnokov
    <head>&nbsp;</head>
    WordPress:
    global $post;
    $categories = get_the_category();
    foreach($categories as $category) {
          echo $category->cat_ID;
    }


    WooCommerce:
    global $product; //Если не объявлен ранее. Не уверен в необходимости.
    global $post;
    $categories = get_the_terms( $post->ID, 'product_cat' );
    foreach ($categories as $category) {
        echo $category->term_id; //Может быть в нескольких категориях
    }
    Ответ написан
    3 комментария
  • Как увеличить скорость загрузки сайта wordpress на VPS/VDS?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Вам же гугл сказал все - 550мс ответ сервера. Это и есть узкое место. Сервер принимает запрос, делает что-то свое, форвардит на PHP, тот поднимает весь WordPress, тот неоднократно лезет в базу данных, потом данные обрабатывает, генерирует html и возвращает их серверу, который отправляет в браузер. Оптимизуйте так:

    - SSD
    - Удаляем Apache и забываем как страшный сон
    - Nginx, отключить все ненужное логирование, оптимизировать настройки (буферы, keep-alive и тд), gzip, кеширование статики на стороне клиента и адекватное время жизни кеша
    - PHP5-FPM версии 5.5.9 и выше с встроенным OPcache, оптимизировать настройки
    - кеширующий бекенд (Memcached / Redis)
    - MariaDB вместо MySQL (пошустрее будет) - погоняйте неделю-две в дефолтном конфиге, потом тюнить по результату (кеши в основном)

    Далее на уровне самого WordPress:

    - плагин для объектного кеширования (Memcached / Redis)
    - Fast Full Page Cache или аналог (не используйте тяжелые WP Super Cache / W3 Total Cache) для кеширования страниц целиком
    - минификация и конкатенация скриптов и стилей

    Есть еще и хардкор для настоящих мужчин:

    - HHVM с фоллбеком на PHP
    - Nginx fastcgi_cache
    - Кастомная сборка Nginx с модулем nginx_memcached, чтобы PHP вообще не поднимать без острой надобности
    - Nginx SPDY
    - и так далее...

    Ну и, конечно же, сам сайт надо рефакторить - и верстку, и функционал. Удалить ненужные плагины, где можно обойтись одним фрагментом кода вместо целого плагина - обходиться.

    Удачи :)
    Ответ написан
    3 комментария
  • Откуда берутся разрывы в определенных сочетаниях букв?

    andykov
    @andykov
    Shit happens
    шрифт кривой, вот и все
    Ответ написан
    Комментировать
  • Откуда берутся разрывы в определенных сочетаниях букв?

    DeLaVega
    @DeLaVega
    Верстаю, фронтэндю =)
    Может что то не подключили?
    Я использовал такое подключение
    <link href='http://fonts.googleapis.com/css?family=Play:400,700&subset=latin,cyrillic-ext,cyrillic' rel='stylesheet' type='text/css'>

    Вот пример
    codepen.io/vitaliy_kirenkov/pen/wBENdV

    Писал слова, в которых у вас были проблемы. Как видно из примера - проблем нет. Попробуйте поискать проблему не через фаирбаг, а посмотрите в исходном коде, возможно какие то символы не выводятся.
    Ответ написан
    3 комментария
  • Оптимальные конфиги для связки: DigitalOcean(5$) + VestaCP + Wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    1. Веста хоть и самая легкая из CP, но все же жрет ресурсы, а на дроплете за $5 их и так очень мало. Ну а для одного сайта зачем вообще контрольная панель?! Удалите к чертям. Ну или попробуйте объяснить, зачем вам эта панель вообще нужна. Уверен, смысла в ней нет.

    2. На минимальном дроплете надо все делать максимально продуманным и эффективным. Обязательно нужен swap 512Мб или даже 1Гб. Nginx, желательно последний mainline. PHP5-FPM с Opcache, для Opcache необходимо выделить 32Мб. Если сайтов больше чем 1 - возможно придется увеличить до 64Мб. Вместо MySQL ставим MariaDB. Обязательно ставим Memcached, php5-memcached (c буквой "d" в конце), ему даем 64-128Мб памяти. В WordPress устанавливаем плагин Memcached Redux (только внимательно читаем как его устанавливать - вместо активации плагина надо скопировать файл в wp-content). Это включит persistent object cache на уровне WordPress, большинство запросов вообще перестанет доходить до БД, а это самое узкое место на минимальном дроплете. Кроме того, если уж делать все серьезно, ставим плагин FFPC (Fast Full Page Cache), он позволит кешировать страницы целиком, а чуть поковырявшись с конфигами, можно кешировать страницы в Memcached (то есть в память), и отдавать их оттуда непосредственно Nginx'ом, даже не поднимая PHP-процесс, и уж тем более не касаясь базы данных. Объем памяти для Memcached, возможно, придется увеличивать - все зависит от объема сайта. Но при таком подходе вы получите очень высокую скорость отклика от своего маленького сервера, и он сможет выдерживать очень большие нагрузки. С полностью кешированным в память сайтом и отдачей Nginx'ом непосредственно из Memcached, а также с оптимизированным кодом и файлами (минификация и конкатенация скриптов и стилей, gzip, оптимизированные картинки и т.д., минимизация количества запросов и т.п.) данный дроплет за $5 сможет обслуживать и 50 000 просмотров в сутки. А это уже 1 500 000 в месяц. Даже пиковые 1-2-3 тысячи запросов (что будет крайне редко, если будет вообще) за короткий промежуток времени ("хабраэффект") пройдут еле-еле заметно - даже если начнет использоваться swap, на SSD-дисках он быстр. В итоге часть клиентов будут испытывать небольшие задержки, не более. Но это речь об одновременной тысяче посетителей на сайте, не меньше. К тому времени, как аудитория сайта дорастет до этого уровня, уверен вы уже перейдете хотя бы на дроплет за $10. А там ресурсов больше, при аналогичном подходе этот дроплет выдержит намного больше.
    Ответ написан
    5 комментариев