Сомневаюсь, что разработчики уделят вам внимание.
http://themeforest.net/item/sahifa-responsive-wordpress-newsmagazineblog/2819356
Вы хоть видели, что там включенО?
Оно вам все это надо? Точно-точно все? Например, меня список всевозможного ступорнул.
А теперь представьте, что начинает инициализироваться сам WP, а потом еще и тема, которая, явно, не заточена на облегчение жизни простому владельцу сайта, весит, как сам дистриб WP, имеет тучу настроек, которые тоже инИтить надо, обращаясь к базе за конфиг данными для выполнения всяческих проверок (если эта пимпа, то цвет овая схема такая-то; и тд). Там же, ИМХО, переписано n-е кол-во плагинов, точнее впихнуто в тему.
Иу-иу, а точнее е... Бревна-то я и не увидел :)
По nginx-у ничего не скажу. Не моя епархия. Хостера мучать, погуглив.
1.
Пускайте http://tools.pingdom.com/
Увидите битые скрипты - найдите места, где они пыркаются - убейте (пофиксите).
Кстати, это будет лучше, чем делать один файл(ы). Как я понимаю, его/их тоже плагин делать будет. Если руками - понимаю, если автоматом - опасаюсь. Про коннекты знаю. Но знаю еще и про размеры скриптово-стилевых файлов, особо если смартфонами шарится.
На второй вкладке "Performance Grade" - вообще раздолье для мыслей и действий.
О некэшируемости скриптов и стилей с ? отличная отповедь.
2.
Плагины. Давно не нуждался в чем-то "сверх", но 3 штуки сразу можно заменить на данные из конфига:
code-update
plugins-updates
theme-updates
"Visitor Maps and Who's Online" - оно вам надо? Плагинчик явно не под вашу версию.
И так пройтись по всему списку.
3.
Самое веселое. Sahifa от themeforest.net
Вы поставили второй WP (со всеми мыслимыми плагинами) на WP и чего-то хотите? Там пока тема заинициализируется - будет не только 200 запросов :) и 5 минут.
Если вы купили оф. эту тему - пинайте на предмет оптимизации разработчика.
Если "спионерили" - сжимайте волю в кулак и пытайтесь самостоятельно освоить оптимизацию Premiun темы.
Сча в твиттер уйдет:
Владельцу сайта на #WordPress: захотел Premium Theme - захоти приличный хостинг.
Ну, добавьте кэширование веб-фонтов.
Вам правильно посоветовали - скинуть все на локал, отследить проблемные запросы. Сейчас там вижу 165 запросов к базе. Как-то мрачно.
Объединять скрипты (в один js) и стили (в один css) можно. Но не нужно. Используйте их пожатые версии. Выигрыш от такой манипуляции, по сравнению с тем, как у вас отдаются картинки - тьфу.
Кстати, сбросьте список плагинов - уверен, вам покажут того, кто "виноват" :)
И раз про плагины. Сколько их там у вас? В папочке. Неиспользованые плагины (не активированы, не будут использоваться в ближайшем обозримом) удалите из папочки плагинов. Системка взохнет легче.
1. У вас беда :) Миниатюры генерятся "на лету" - пользуется timthumb.php.
- проверьте версию скрипта: пользуйте новейшую, ибо старая - дырка в безопасности
- проверьте, чтобы этим скриптом создавался кэш картинок
2. Попробуйте избавиться от timthumb.php, переписав вывод миниатюр, пользуя стандартные возможности WordPress.
3. Попробуйте прививку для сервера.
Если сервер огорчает вас - огорчите сервер - пусть думает и работает :)
Вариант 1.
<IfModule mod_expires.c> ExpiresActive On ## # Specify an expiration one week in the future for images, JavaScripts and # CSS files (as recommended by Google Page Speed). Edit or remove the lines # to set up your own expiration logic. ## ExpiresByType image/png A604800 ExpiresByType image/gif A604800 ExpiresByType image/jpg A604800 ExpiresByType image/jpeg A604800 ExpiresByType text/javascript A604800 ExpiresByType application/x-javascript A604800 ExpiresByType text/css A604800 </IfModule>
Вариант 2. Чуть веселей.
## # Expires headers (for better cache control) # @see https://github.com/h5bp/html5-boilerplate ## <IfModule mod_expires.c> ExpiresActive on ExpiresByType text/cache-manifest "access plus 0 seconds" ExpiresByType text/html "access plus 0 seconds" # Data ExpiresByType text/xml "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType application/json "access plus 0 seconds" # Feed ExpiresByType application/rss+xml "access plus 1 hour" ExpiresByType application/atom+xml "access plus 1 hour" # Media: images, video, audio ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/x-icon "access plus 1 month" ExpiresByType video/ogg "access plus 1 month" ExpiresByType audio/ogg "access plus 1 month" ExpiresByType video/mp4 "access plus 1 month" ExpiresByType video/webm "access plus 1 month" # HTC files (css3pie) ExpiresByType text/x-component "access plus 1 month" # Webfonts ExpiresByType application/x-font-ttf "access plus 1 month" ExpiresByType font/opentype "access plus 1 month" ExpiresByType application/x-font-woff "access plus 1 month" ExpiresByType image/svg+xml "access plus 1 month" ExpiresByType application/vnd.ms-fontobject "access plus 1 month" # CSS and JavaScript ExpiresByType text/css "access plus 1 year" ExpiresByType application/javascript "access plus 1 year" </IfModule>
Синтаксис разный - выбирайте, что понравится.
Будете девелопить комментарите все. На продакшене - раскомментарьте, что нужно.
Где втулить? ИМХО, лучше перед # BEGIN WordPress, дабы не потер автоматом. А лучше периодически глазом смотрите, чтобы не потер :)
Посмотрите куда скрипт скидывает кэш-картинки. Возможно в одну диру и там их у вас очень (очень) много. Из-за этого может замедляться доступ. В таком случае, попробуйте с программистом разнести кэш по подпапкам, как это разносится при заливке оригиналов.
Прививку серверу попробуйте в любом случае.
Ок. Чисто теоретически.
Предположение:
http://www.site.tld/article-4.html (пользукм чпу - $use_url_alias = TRUE)
http://www.site.tld/article.php?article_id=4
articles.dat
article_id|article_title
1|title_1
2|title_2
...
n|title_n
Чтобы попасть на страницу, где вы собираетесь выводить такой список, где-то формируется ссылка на нее (странно, если она пишется руками).
Т.е. перейдя на эту страницу, мы имеем id этой страницы. Например,
$article_id = 4;
Далее:
$articles_arr = file(articles.dat); $out_str = ''; // есть ли вообще записи if (count($articles_arr) > 0) { $tmp_arr = array(); foreach ($articles_arr as $item) { list($id, $aricle_title) = explode('|', $item); if ($id != $article_id) { array_push($tmp_arr, $item); } } // отобрали мы что-нибудь? if (count($tmp_arr) > 0) { // перемешаем shuffle($tmp_arr); $out_str .= '<ul>'; for ($i=0; $i<$num_of_mes; $i++) { if (isset($tmp_arr[$i])) { list($id, $article_title) = explode('|', $tmp_arr[$i]); // если пользуем чпу if ($use_url_alias) { $out_str .= '<li><a href="/article-'. $id .'.html">'. trim(stripslashes($article_title)) .'</a></li>'; } else { $out_str .= '<li><a href="/article.php?article_id='. $id .'">'. trim(stripslashes($article_title)) .'</a></li>'; } } } // end for $out_str .= '</ul>'; } } echo out_str;
Если я что-то недопонял из задачи, то тогда по совету zerocube
Ок. А урл какого вида?
И - это реально записи, типа заголовок новости с сылкой, или это просто текстовый файлик написаный ручками?
А уточните, плз, формат текстового файла с записями? Ну пару-тройку строк.
Только ИМХО.
А вы фильтруете данные после их получения: ' => ' ?
Если уж про кавычки заговорили - помните, что есть еще кавычки от MS Word.
IE & Opera строго до 5.x версий, строго :)
Ребята. Пожалуйста, не гоните антонооо :) Он поднимает настроение своими вопросами (пятница сегодня). Наше же дело, что ему ответить :) Итак кучку поднимальщиков разогнали. Один тар чего стоил.
anton000: а если я js в браузере отключу, ошибки будут?