Задать вопрос
  • Правильная проверка на пустоту переменной?

    KorsaR-ZN
    @KorsaR-ZN
    Начну с различия между isset и empty.

    isset - проверяет на существование переменной или индекса в массиве, т.е она будет ВСЕГДА true, если значение отлично от NULL, именно от константы null, т.е '', 0, "\0" и т.д, будет считаться существующей переменой, false будет только при присвоение ей null или unset($var), во всех остальных true

    empty - проверят именно на пустоту переменной, т.е возвращает true если переменная является пустой и false в противоположном случаи.

    В PHP пустотой считаются следующие значения:
    • ""
    • 0
    • 0.0
    • "0"
    • null
    • false
    • array() (пустой массив)
    • $var; (переменная объявлена, но не имеет значения)


    Что касается проверки на пустоту и как ее правильно делать, то это исходит от Вашей задачи, и что должно для Вас является пустотой, но в большинстве случаем подойдет такая проверка:
    if(isset($var) && $var !== '')  {
    // $var не null и не  ''.
    }

    Еще больше поможет разобраться в сравнение типов, это таблица сравнение типов PHP
    Ответ написан
  • Какой шаблон проектирования подходит для плагина WordPress?

    glaphire
    @glaphire
    PHP developer
    Достаточно обычного рефакторинга на уровне "читаемо" и "без дублирования" (с размазыванием на пару классов по необходимости), MVC и паттерны это не ответ на такой вопрос (MVC - потому что это обобщенное понятие и просто притянуто к вебу из другой темы, а паттерн может вырисоваться сам во время рефакторинга, да и границы между некоторыми из них условны).
    Ответ написан
    1 комментарий
  • Почему не выводятся комментарии в произвольных типах записей?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Так, давайте по порядку.

    1. Комментарии включены по умолчанию для новых custom post types.
    2. Если у вас произвольные значения у свойства post type'а "supports" - убедитесь что там есть значение "comments"
    3. В самом теплейте для вывода записи произвольного post type должно быть <?php comments_template( '', true ); ?>

    Если у вас уже есть произвольные записи, которые были добавлены без "comments" в "supports", то у них в базе прописано что комменты выключены. Можно менять руками, а можно в PHPMyAdmin выполнить один запрос и включить комменты для всех записей этого типа:

    UPDATE wp_posts SET `comment_status`='open' WHERE `post_type`='your_post_type_slug';
    Ответ написан
    4 комментария
  • Как правильно сделать редирект со всего раздела, в новый раздел?

    shambler81
    @shambler81 Куратор тега htaccess
    Перенаправляет все содержимое каталогов http://site.ru/dir1/любое/любое → в site.ru dir2 /любое/любое .

    RewriteCond %{REQUEST_URI} ^/dir1/(.*)$ 
    # если строка начинается с /dir1/ 
    RewriteRule ^(.*)$ /dir1%1 [R=301,L]

    #Перенаправить все урлы с начинающиеся с dir1 на dir2 с сохранением дальнейшей структуры URL
    Перенаправляет все содержимое каталогов/любое/dir1/любое/любое → в /любое/dir2/любое/любое
    RewriteCond %{REQUEST_URI} ^(.*)/dir1/(.*)$ 
    # если строка содержит /dir1/ 
    RewriteRule ^(.*)$ %1/dir2/%2 [R=301,L]

    #Перенаправить все урлы с начинающиеся с dir1 на dir2 с сохранением дальнейшей структуры URL
    Ответ написан
    7 комментариев