WordPress как на ладони
rgbcode is looking for WordPress developers. Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

Избавляемся от лишних обращений к данным

ВАЖНО!

Статью писал давно и еще плохо понимал некоторые моменты. Все что написано в этой статье работает, но все это мелочи и не стоит этим заниматься.

Не надо реализовывать советы из этой статьи!

Просто ознакомьтесь, возможно появятся какие-то свои идеи по оптимизации...

1. Избавляемся от лишних обращений к данным

Везде, где есть возможность заменить динамические данные на статические, их нужно заменить. Например, заменяем:

<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />

на

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

По аналогии желательно заменить всё: <?php language_attributes(); ?>, <?php bloginfo('rss2_url'); ?> и т.д. и т.п.

Там где вызываемая переменная встречается несколько раз, желательно вызывать ее один раз. Скорее это можно отнести к <?php bloginfo('template_url'); ?>. Для наглядности приведу код.
Такую запись:

...
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/scripts/prototype.lite.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/scripts/moo.fx.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/scripts/moo.fx.pack.js"></script>
...

Можно записать так:

...
$templateurl = get_bloginfo('template_url');
<script type="text/javascript" src="<?php echo $templateurl ?>/scripts/prototype.lite.js"></script>
<script type="text/javascript" src="<?php echo $templateurl ?>/scripts/moo.fx.js"></script>
<script type="text/javascript" src="<?php echo $templateurl ?>/scripts/moo.fx.pack.js"></script>
...

Поясню: мы заранее определяем путь до шаблона и помещаем его в переменную $templateurl, а затем везде, где нужно написать путь до шаблона пишем <?php echo $templateurl ?>. Если sidebar и footer вызывать через require или include (require ('sidebar.php');), вместо стандартной функции WP - get_header();, то один раз определив переменную $templateurl (где нибудь в header), её можно будет использовать и в файлах sidebar.php, footer.php.

2. Небольшая оптимизация в комментариях

#1. Правим код, связанный с выводом даты:

<?php printf('%1$s at %2$s', get_comment_date(),  get_comment_time()) ?>

Меняем его на:

<?php printf('%1$s в %2$s', get_comment_date('d.m.Y'),  get_comment_time('H:i')); ?>
//Или можно записать так:<?php echo date( 'd.m.Y в H:i', strtotime($comment->comment_date) ); ?>

Таким изменением, мы заранее определяем формат даты, и функции get_comment_date() или get_comment_time() уже не запрашивают формат даты из настроек сайта. Информацию о форматах даты, чтобы далеко не ходить, можно посмотреть в настройках WP (настройки->общие).

Экономия: 2 обращения к данным с каждого комментария.

#2. Заменяем ссылку на комментарий в дате комментария

Дата комментария анкор ссылки, если она у вас есть конечно, обычно она присутствует. Вместо функции, которая получает адрес ссылки (get_comment_link()) пишем так: <a href='#comment-<?php echo $comment->comment_ID ?>'>Здесь дата</a>.

Экономия: минус еще по одному обращению к данным с каждого комментария.

Для наглядности выше написанного

// так выглядит кусок кода комментариев в WordPress (по дефолту):
<a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>"><?php printf(__('%1$s at %2$s'), get_comment_date(),  get_comment_time()) ?></a>

// я предлагаю чтобы он выглядел так:
<a href="#comment-<?php echo $comment->comment_ID ?>"><?php echo date( 'd.m.Y в H:i', strtotime($comment->comment_date) ); ?></a>

Такое несложное изменение и если у статьи, например, 20 комментариев экономия составит 60 обращений к данным.

35 комментариев
    Войти