22.06.2010 by MaxBloger
Иногда, в WordPress, после первого поста нужно разместить рекламу, для этого используем следующий код:
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); $loopcounter++; ?>
// the loop stuffs
<?php if ($loopcounter <= 1) { include (TEMPLATEPATH . '/ad.php'); } ?>
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
17.06.2010 by MaxBloger
Допустим, Вы хотите использовать различные шаблоны вывода постов в определённых рубриках. Используем “in_category” для определения в какой рубрике находится пост, а затем применяем нужный нам шаблон. Добавляем следующий код в файл single.php:
<?php
$post = $wp_query- >post;
if ( in_category('1') ) {
include(TEMPLATEPATH . '/single1.php');
} elseif ( in_category('2') ) {
include(TEMPLATEPATH . '/single2.php');
} else {
include(TEMPLATEPATH . '/single_other.php');
}
?>
Пояснение кода: если пост находится в рубрике с ID1, используется файл single1.php, если с ID2 – single2.php, для остальных рубрик будет использоваться шаблон в файле single_other.php.
07.06.2010 by MaxBloger
Для того, чтобы вывести общее число комментариев, оставленных в Вашем WordPress, необходимо, в нужном месте, вставить следующий код:
<?php
global $wpdb;
$where = 'WHERE comment_approved = 1';
$comment_counts = (array) $wpdb->get_results("
SELECT COUNT( * ) AS total
FROM {$wpdb->comments}
{$where}
", object);
echo $comment_counts[0]->total;
?>
05.06.2010 by MaxBloger
Очень редко, но случаются такие ситуации, когда каждый четный или нечетный абзац в записи, нужно оформить по разному. Для этого:
вместо стандартного
<?php the_content(''); ?>
ставим
<?
$content = get_the_content();
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
$content = str_replace(array("\n", "\r"), '', $content);
preg_match_all('/<p>(.*?)<\/p>/',$content,$matches);
for($a = 0; $a < count($matches[1]); $a++) {
$p_content = $matches[1][$a];
echo '<div class="row'.($a%2).'">'.$p_content.'</div>';
}
?>
В данном случае первый абзац будет иметь вид:
<div class="row0">здесь текст первого абзаца</div>
второй:
<div class="row1">здесь текст второго абзаца</div>
третий снова:
<div class="row0">здесь текст третьего абзаца</div>
и т.д.
“%2″ используем для регулировки количества “разных” абзацев.
p.s. не забываем в файле стилей прописать классы .row0 и .row1.
p.p.s. кому и для чего это понадобится я не знаю, но случаи всякие бывают..
02.06.2010 by MaxBloger
<title>
<?php
if (is_home()) {
echo bloginfo('name');
} elseif (is_404()) {
echo 'Ошибка 404';
} elseif (is_category()) {
echo 'Рубрика:'; wp_title('');
} elseif (is_search()) {
echo 'Результаты поиска: '; the_search_query();
} elseif ( is_day() || is_month() || is_year() ) {
echo 'Архив:'; wp_title('');
} else {
echo wp_title('');
}
?>
</title>
31.05.2010 by MaxBloger
Иногда, на время или полностью, в WordPress нужно запретить комментирование всех постов. Для этого выполняем следующие действия:
1. Войдите в phpMyAdmin, выберите свою базу данных WordPress и откройте окно SQL.
2. Выполните следующий запрос:
UPDATE wp_posts SET comment_status = 'closed' WHERE comment_status = 'open';
3. Готово. Все посты закрыты для комментирования.
27.05.2010 by MaxBloger
При оптимизации загрузки WordPress блога, очень важно знать количество выполненных запросов к базе данных. Для их уменьшения сначала нужно узнать, сколько запросов вообще выполняется на одной странице.
Всё очень просто:
Открываем файл footer.php и в самом конце добавляем следующий код:
<?php echo get_num_queries(); ?> запросов за <?php timer_stop(1); ?> секунд.
Если Вы не хотите, чтобы поисковые системы и посетители сайта видели эти данные, нужно добавить условие “if (is_user_logged_in())” и код будет выглядеть следующим образом:
<?php if (is_user_logged_in()) { ?>
<?php echo get_num_queries(); ?> запросов за <?php timer_stop(1); ?> секунд.
<?php } ?>
Сохраняем и видим в “подвале” сайта интересующие нас цифры.
25.05.2010 by MaxBloger
Чтобы создать страничку архива сайта в WordPress, с содержанием всех новостей и датой их публикаций, выполняем следующие действия:
1. Делаем копию файла page.php и переименовываем его в archives.php
2. Открываем archives.php и меняем главную часть кода (начинается так же) на это:
<?php while(have_posts()) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<ul>
<?php
$myposts = get_posts('numberposts=-1&offset=0');
foreach($myposts as $post) :
?>
<li><?php the_time('d.m.Y') ?> | <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
<?php endwhile; ?>
3. Для того чтобы WordPress распознавал файл archives.php как шаблон для создания страниц, добавляем в самый верх следующие строчки:
<?php
/*
Template Name: Archives page
*/
?>
4. Создаем новую страницу «Архив» и внизу, в разделе «Шаблон страницы», выбираем шаблон «Archives page»
5. Кликаем «Опубликовать».