Отображаем рекламу после первого поста в WordPress

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; ?>

Разные шаблоны single.php для разных рубрик в WordPress

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.

Аюрведа на ВедаБлоге

09.06.2010 by MaxBloger

Подробнее »

Отображаем общее число комментариев

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;
?>

Разные стили абзацев в WordPress

05.06.2010 by MaxBloger

Очень редко, но случаются такие ситуации, когда каждый четный или нечетный абзац в записи, нужно оформить по разному. Для этого:

вместо стандартного

<?php the_content(''); ?>

ставим

<? 
$content = get_the_content();
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]&gt;', $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. кому и для чего это понадобится я не знаю, но случаи всякие бывают..

Динамический title в WordPress

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>

Запрет комментариев во всех постах. MySQL запрос.

31.05.2010 by MaxBloger

Иногда, на время или полностью, в WordPress нужно запретить комментирование всех постов. Для этого выполняем следующие действия:

1. Войдите в phpMyAdmin, выберите свою базу данных WordPress и откройте окно SQL.

2. Выполните следующий запрос:

UPDATE wp_posts SET comment_status = 'closed' WHERE comment_status = 'open';

3. Готово. Все посты закрыты для комментирования.

Автомобильный блог DriveBlog.ru

28.05.2010 by MaxBloger

Подробнее »

Отображение количества SQL запросов в WordPress

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 } ?>

Сохраняем и видим в “подвале” сайта интересующие нас цифры.

Создание страницы архива в Wordpress

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. Кликаем «Опубликовать».