Контакты

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (23)

Лучшие ответы пользователя

Все ответы (26)
  • Нагрузка на Wordpress?

    irtek
    @irtek
    Wordpress-addicted
    Вопросы будут и к хостингу (нужен VPS настроенный)
    И к Вордпрессу. В ситуации с 300 тыс записей 100% категоричный отказ от встроенных функций ВП. Даже не пытайтесь. Все фильтры писать вручную с оптимизированными запросами в базу. Стараться по максимуму сократить переборы базы, т.к. его meta_query и прочие встроенные фильтры делают многократные бессмысленные переборы таблиц.

    О цифрах по опыту
    При оптимизированном VPS на 1 ядре + 1 Гб ОЗУ спокойно работают встроенные фильтры ВП (140 тыс записей) + 7 параметров фильтрации. Но при более сложном фильтре, чем простой отбор параметров появились проблемы даже при росте мощностей до 4 ядер + 4 Гб ОЗУ. Тормоза ощутимые, особенно при одновременной пользовательской активности в 150-200 человек. Оптимизировали сложные запросы, сделали их вручную и все вернулось к прежним 1 ядро + 1 Гб ОЗУ.

    На сайте с 420 тысячами записей появились проблемы с фильтрами встроенными сразу. Переписали вручную и проблему сняли, для надежности работает на VPS 3 ядра + 2 Гб ОЗУ.
    Обязательное использование кэширования запросов, например сервера Memcache. Также использовать встроенное транзитное кэширование ВП. Эти два подхода снимут любую проблему нагрузки на базу и фильтры наполовину.

    Переход на php 7.0 в последнее время положительно сказался на работу ВП.

    Насчет серверной оптимизации
    При работе публично в обязательном порядке закрыть wp-login.php, xmlrpc.php, а также wp-json REST API. Данные мероприятия исключат любую лишнюю нагрузку от ботов. Отфильтровать доступ к папкам wp-admin и wp-includes, а также закрыть доступ к php кроме сервера к wp-content/plugins и папки темы.
    Ответ написан
  • Как настроить поиск записей в админке WP?

    irtek
    @irtek
    Wordpress-addicted
    Этот поиск в админке ищет и по заголовку и по содержанию.
    Если вы хотите, чтобы данный поиск искал только по заголовкам, то добавьте данный код в файл functions.php вашей темы.

    function search_only_title_toster_q411859($search, &$wp_query) {
    	global $wpdb;
    	if (empty($search)) {
    		return $search;
    	}
    
    	$q = $wp_query->query_vars;
    	$n = !empty($q['exact']) ? '' : '%';
    	$search =
    	$searchand = '';
    	foreach ((array) $q['search_terms'] as $term) {
    		$term = esc_sql(like_escape($term));
    		$search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
    		$searchand = ' AND ';
    	}
    	if (!empty($search)) {
    		$search = " AND ({$search}) ";
    		if (!is_user_logged_in()) {
    			$search .= " AND ($wpdb->posts.post_password = '') ";
    		}
    
    	}
    	return $search;
    }
    add_filter('posts_search', 'search_only_title_toster_q411859', 500, 2);
    Ответ написан
  • Как получить email через API ВКонтакте?

    irtek
    @irtek
    Wordpress-addicted
    Мыло ВК отдается вместе с токеном, а не при запросе информации о юзере.
    Ответ написан
  • Вирус постоянно меняет права к файлам сайта на Wordpress?

    irtek
    @irtek
    Wordpress-addicted
    У вас где-то залит shell-скрипт. В идеале нужно все переустановить.
    Wordpress в обязательном порядке, тему и все плагины. Если на сервере под одним пользователем несколько сайтов, то такой враг может быть в любом из них.

    Если у вас есть доступ к серверу по SSH, то выполните команду

    find . -type f -name '*.php' | xargs grep -l "x63" --color


    или

    find . -type f -name '*.php' | xargs grep -l "x47" --color


    "точка" после find обозначает искать в папке, в которой находитесь, замените ее на путь к папке, где лежат ваш сайт или сайты или вообще заменить на слеш / тогда искать будет по всему серверу.

    Команда ищет файлы в содержании, которых есть текст "x63" или "x47". В 99% случаях из таких кодов состоит шифровка вражеских вирусов. Обратите внимание на файлы, которые найдет команда. Откройте их и посмотрите содержание. Код вируса вы сразу увидите, он весь шифрованный base64 и присутствуют команды eval. Чистите или восстановите данные файлы на чистые.
    Ответ написан
  • Почему не отображаются картинки после переноса сайта на локальный сервер?

    irtek
    @irtek
    Wordpress-addicted
    Когда указывает домен в url изображения необходимо указывать протокол http:// или https:// чтобы сервер не открывал это в рамках вашего сайта, либо указывать без домена адрес, т.е.
    background-image: url('http://site.ru/wp-content/uploads/...
    background-image: url('//site.ru/wp-content/uploads/...
    background-image: url('/wp-content/uploads/...


    все варианты будут правильные. Вначале // это сокращенный вариант без уточнения http или https
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (4)