• .htaccess для лучшей оптимизации сайта?

    sim3x
    @sim3x
    Оптимальное значение гзип - 5

    Типичный случай оптимизации - убрать апач и поставить nginx+php-fpm
    Ответ написан
    2 комментария
  • Разработка под одну платформу и фриланс, как жить-то?

    reaferon
    @reaferon
    21 век - эпоха коллективов.
    Найдите коллегу, работающего с "противоположной" платформой, наверняка он испытывает схожие проблемы. Ну и работайте сообща.
    Ответ написан
    3 комментария
  • Возможность автоматически нарезать макет из картинки PNG?

    ronik55
    @ronik55
    Simply good guy, who can press any key ;)
    Я думаю данный сервис поможет вам)

    7b3fb9d783de.jpg
    Ответ написан
    Комментировать
  • Как лучше сделать автомодератора на комментарии?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1. Кнопка пожаловаться, которая отправляет комментарий на модерацию. Сортировать список можно по количеству жалоб. Делается очень легко и быстро. Работает надежно.
    2. При наличии матных слов (тупая проверка по словарю) можно блочить отправку комментария. В этом случае стоит сделать словарь либеральнее оставляя только очевидные варианты. Далее будет работать кнопка "пожаловаться". Проверять на ссылки бесполезно - часто дают полезные.
    3. Greg Young - Stop over engineering - рекомендую к просмотру и осмыслению.
    4. Воспользоваться существующей системой комментариев.
    5. Можно защититься от тупых краулеров сделав отправку комментариев через JS и добавив опциональное скрытое поле. Тупые боты их заполнят. Такие запросы можно отбрасывать. Защищает от доброй половины спама.
    Ответ написан
    1 комментарий
  • Как вывести посты разных типов в одном цикле Wordpress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    А так?
    <?
      $perem = new WP_Query(array('post_type' => array('post', 'post2'), 'posts_per_page' => 5));
      while($perem->have_posts())
    {
      $perem->the_post();
      get_template_part( 'post-home' );
    }
    ?>
    Ответ написан
    1 комментарий
  • Как исправить проблему с авторизацией на сайте WordPress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Попробуйте эти рекомендации.
    Ответ написан
    Комментировать
  • Не кешировать результаты работы функции wordpress?

    Универсальный способ против различных плагинов кэширования - не использовать плагины кэширования.
    Ответ написан
    Комментировать
  • Какие БД на хостингах?

    opium
    @opium
    Просто люблю качественно работать
    Бд mysqli не существует это всего лишь один из интерфейсов в пхп для бд mysql
    Ответ написан
    1 комментарий
  • Как найти обработчик контента в Wordpress'e?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Здравствуйте.

    Подозреваю, Вам должен подойти хук wp_insert_post_data.

    add_filter( 'wp_insert_post_data', 'filter_post_data', 99, 2 );
    function filter_post_data( $data , $postarr ) {
        $post_content = $data['post_content'];
        $data['post_content'] = '[restabs]' . $post_content . '[/restabs]';
        return $data;
    }

    Вероятно, при использовании хука понадобится добавить дополнительные проверки.

    Ещё можно попробовать хук content_save_pre.

    function my_sanitize_content( $content ) {
        return '[restabs]' . $content . '[/restabs]';
    }
    add_filter( 'content_save_pre', 'my_sanitize_content' );
    Ответ написан
    1 комментарий
  • Как с помощью нативного php расширения защитить свои наработки на php?

    CityCat4
    @CityCat4 Куратор тега C
    //COPY01 EXEC PGM=IEBGENER
    Общий ответ - никак. Потому что неотламываемой защиты нет, есть скорость взлома. Если Ваш проект коммерчески успешен и приносит большой профит (то есть такой, который будет заведомо больше стоимости взлома) - отломают все, что бы Вы ни пристроили, тем более в PHP, где способов защиты не так уж и много. Да и ставить себе на сервер непонятно что за модуль я не стал бы.
    Здесь надо немного взглянуть глубже, убить в себе ИТ-шника и поглядеть на задачу глазами бизнеса. Ведь защита Вам нужна не сама по себе, а чтобы не тырили, а покупали, то есть ради обеспечения профита с разработки. Вот и задумайтесь - а можно ли обеспечить профит другими способами? OnYourLips дал Вам замечательный совет. Почему становится таким популярным SaaS? А потому что так значительно проще защищать свои наработки - ведь они никуда не уходят :) Более того, ты можешь и свои условия клиенту диктовать, как только популярность наберешь, и его данными втихушку разжиться - не для того чтобы использовать, конечно - за это и огрести можно, а просто поржать.
    Ответ написан
    Комментировать
  • Как на WP сделать поиск только по постам?

    llgruff
    @llgruff
    Scala
    В functions.php:
    Если хотим оставить поиск только по post, все page, польз.типы исключить:
    function SearchFilter($query) {
      if ($query->is_search) {
        $query->set('post_type', 'post');
      }
      return $query;
    }
    add_filter('pre_get_posts','SearchFilter');

    Если хотим исключить из поиска page, всё остальное оставить:
    add_filter('register_post_type_args', function($args, $post_type) {
      if (!is_admin() && $post_type == 'page') {
        $args['exclude_from_search'] = true;
      }
      return $args;
    }, 10, 2);
    Ответ написан
    2 комментария
  • Как редактировать плагин на wordpress?

    OtshelnikFm
    @OtshelnikFm Куратор тега WordPress
    Обо мне расскажет yawncato.com
    add_action и add_filter - удобная штука в вордпрессе. Экшны позволяют прицепиться при каком-то событии. А фильтры изменить под себя. Если в плагине, в том месте где вы хотите изменить, нет фильтра - попросите разработчика плагина добавить его. Я просил - всегда внедряли и шли навстречу. Ведь что нужно изменить мне - возможно потребуется и другим. Разработчики всегда рады когда их плагин отличается гибкостью.
    Ответ написан
    Комментировать
  • Как заменить класс menu-item-has-children в меню wordpress?

    @joker_bsg
    Fullstack Web Developer
    можно с помощью фильтра wp_nav_menu_objects Первый аргумент это массив объектов где есть свойство массив classes.

    Если вы хотите использовать bootstrap в wp меню есть более подходящее решение. Нужно использовать https://github.com/twittem/wp-bootstrap-navwalker. В секции Usage есть пример как использовать
    Ответ написан
    7 комментариев
  • Как сортировать по мета полям в которых записаны сериализованные данные?

    Сериализуйте каждое значение из массива, и записывайте все это дело в несколько правил. Будет как-то так.
    'meta_query' => array(
    	'relation' => 'AND',
    	array(
    			'key' => 'mode', 
    			'value' => 'Ежедневно' /* это просто строка и сама по себе работает*/
    	),
    	array(
    		'relation' => 'OR',
    		array(
    			'key'     => 'options',
    			'value'   => serialize('Детская стоматология'),
    			'compare' => 'LIKE',
    		),
    		array(
    			'key'     => 'options',
    			'value'   => serialize('Рентген'),
    			'compare' => 'LIKE',
    		),
    	),
    ),
    Ответ написан
  • Оптимизация frontend'a (помимо JavaScript)?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Таймеры и слушатели (подписка на события) - основные лангольеры.
    280px-%D0%9B%D0%B0%D0%BD%D0%B3%D0%BE%D0%
    Для анимации - используем CSS
    Обработчики событий (стараемся использовать реже) - JS
    Для сложных/периодических вычислений: Asm.js

    Ответ на "чтобы не лагало при...": используем ИЕРАРХИЧЕСКИЙ контроль слушателей событий и включаем/отключаем изоляцию целых "ветвей дерева" событий в различных ситуациях: ввод в поле, нахождение во вьюпорте и т.д.
    Ответ написан
    6 комментариев
  • Почему мокапы - презентации сайтов для веб-дизайнерского портфолио всегда показывают на Apple гаджетах?

    @Nwton
    Почему мокапы на Apple гаджетах
    1) Потому что так сложилось. Так принято. Это стандарт.
    2) Потому что техника от apple выглядит минималистично и не отвлекает деталями своей конструкции от презентуемого объекта.

    Является ли решением проблемы смирение и участие в мировом дизайнерском заговоре
    Решением является не просто смирение, а осознания того, почему берут фоны с маком. Фоны с другими устройствами используйте, когда в этом есть нужда. Если товар имеет прямую зависимость от устройства.
    Ответ написан
    Комментировать
  • Почему книги продолжают писать с этим шрифтом?

    kornwind
    @kornwind
    Веб-разработчик, редактор, копирайтер, ит-менеджер
    Джо Шугарман в своей книге «The Ultimate Guide to Writing Powerful Advertising and Marketing» (опубликована на русском языке под названием «Искусство создания рекламных посланий») приводит данные исследований, которые доказывают, что использование шрифтов с засечками увеличивают читабельность печатного текста в 5 раз. (источник)

    А на экране действительно легче читаются шрифты без засечек. Хотя по мне, так на качественных экранах с высоким разрешением и шрифты с засечками читаются ничуть не хуже, чем без засечек.
    Ответ написан
    Комментировать
  • Сколько стоит работа?

    opium
    @opium
    Просто люблю качественно работать
    Определитесь с ценой за час
    Например тысяча рублей за час
    Умножьте потраченное время на ставку
    Ответ написан
    5 комментариев
  • Как включить поддержку меток в Custom Post Types?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Доброго.

    Попробуйте использовать, либо параметр 'taxonomies' => array('post_tag')
    add_action('init', 'register_post_types');
    function register_post_types(){
      register_post_type('authors', array(
        'label'  => null,
        'labels' => array(
          'name'               => 'authors', // основное название для типа записи
          'singular_name'      => 'authors', // название для одной записи этого типа
          'add_new'            => 'Добавить автора', // для добавления новой записи
          'add_new_item'       => 'Добавление автора', // заголовка у вновь создаваемой записи в админ-панели.
          'edit_item'          => 'Редактирование автора', // для редактирования типа записи
          'new_item'           => 'Новый автор', // текст новой записи
          'view_item'          => 'Смотреть автора', // для просмотра записи этого типа.
          'search_items'       => 'Искать автора', // для поиска по этим типам записи
          'not_found'          => 'Не найдено', // если в результате поиска ничего не было найдено
          'not_found_in_trash' => 'Не найдено в корзине', // если не было найдено в корзине
          'parent_item_colon'  => '', // для родителей (у древовидных типов)
          'menu_name'          => 'Authors', // название меню
        ),
        'description'         => '',
        'public'              => true,
        'publicly_queryable'  => null,
        'exclude_from_search' => null,
        'show_ui'             => true,
        'show_in_menu'        => true, // показывать ли в меню адмнки
        'menu_position'       => null,
        'menu_icon'           => null, 
        //'capability_type'   => 'post',
        //'capabilities'      => 'post', // массив дополнительных прав для этого типа записи
        //'map_meta_cap'      => null, // Ставим true чтобы включить дефолтный обработчик специальных прав
        'hierarchical'        => false,
        'supports'            => array('title','editor','thumbnail','revisions','page-attributes','post-formats'), // 'title','editor','author','thumbnail','excerpt','trackbacks','custom-fields','comments','revisions','page-attributes','post-formats'
        'taxonomies'          => array('post_tag'),
        'has_archive'         => false,
        'rewrite'             => true,
        'query_var'           => true,
        'show_in_nav_menus'   => null,
      ) );
    }

    либо функцию register_taxonomy_for_object_type()
    add_action( 'init', 'gp_register_taxonomy_for_object_type' );
    function gp_register_taxonomy_for_object_type() {
        register_taxonomy_for_object_type( 'post_tag', 'authors' );
    };
    Ответ написан
    Комментировать
  • Как правильно выбрать из данные из середины БД?

    Есть простая таблица notes для мини-блога: id_author, header, text. И мне нужно найти вторые пять записей пользователя

    В реляционной БД таблица - она же отношение (relation) - это множество записей, а не список. Т.е. они не упорядочены, и если сейчас вам запрос на выборку выдаёт их в одном порядке, то завтра он будет это делать в другом порядке. В записи нигде не хранится время её добавления, поэтому СУБД может перекладывать их как пожелает.
    Чтобы решить это проблему, вам нужно добавить поле для хранения порядка записей. Проще всего добавить время публикации. Также вам, возможно, пригодится поле id или number для хранения номера самой записи, т.к. сейчас непонятно, может ли быть несколько записей от одного автора или нет (в теории - может, но непонятно тогда как вы их различаете. По заголовку?).
    Затем вам возможно пригодится индекс (id_author, postdatetime), чтобы выборки с сортировкой по времени были эффективными.
    Теперь вы сможете выбрать:
    select header, text from notes where id_author = <автор> order by postdatetime limit 5, 5
    Ответ написан
    Комментировать