10 самых комментируемых постов прошедшего года

Полезные рецепты для WordPress

Поведаю вам, как отобразить самые комментируемые посты на вашем блоге за прошедший год.

<h2>Самые комментируемые посты 2008 года</h2>
<ul>
<?php
$result = $wpdb->get_results("SELECT comment_count,ID,post_title, post_date FROM $wpdb->posts WHERE post_date BETWEEN '2008-01-01' AND '2008-12-31' ORDER BY comment_count DESC LIMIT 0 , 10");

foreach ($result as $topten) {
    $postid = $topten->ID;
    $title = $topten->post_title;
    $commentcount = $topten->comment_count;
    if ($commentcount != 0) {
    ?>
         <li><a href="<?php echo get_permalink($postid); ?>"><?php echo $title ?></a></li>
    <?php }
}
?>
</ul>

Вставьте этот код в любом месте вашей темы и отобразится 10 самых комментируемых постов 2008 года, дату вы можете изменить на любую другую, к примеру за последний месяц и т.д. тут уж ограничемся вашей фантазией.  Надеюсь это понравилось вам и вашим читателям :)

Стилизуем комментарии автора

Полезные рецепты для WordPress

Сейчас появилась неплохая тенденция выделять комментарии автора. Это очень хорошо, так как сразу ясно кто автор, кому задавать вопросы по публикации. И вообще это хороший тон по моему мнению. Поэтому сегодня вам расскажу, каким же образом это сделать.  А все очень просто, потому что WordPress добавляет стиль к комментариям автора, поэтому нам надо просто определить в css файле наш стиль отзыва:

li.bypostauthor {
    /* CSS для комментариев автора записи */
}

li.byuser {
    /* CSS для пользовательских комментариев */
}

После чего, комментарии автора будут отличными от других. Успехов!

Подключить стиль для отдельного поста

Полезные рецепты для WordPress

Сегодня поведаю вам, каким образом можно подключить свой файл стилей используя для этого произвольное поле. Необходимость подключить отдельный стиль может возникнуть, когда вы захотите, чтобы отдельный пост отличался от остальных. Для того чтобы это сделать, нам нужно открыть файл header.php нашей темы и вставить между тегами <head> и </head> этот код:

<?php if (is_single()) {
    $css = get_post_meta($post->ID, 'css', true);
    if (!empty($css)) { ?>
        <style type="text/css">
        <?php echo $css; ?>
        <style>
    <?php }
} ?>

Теперь, если вы вставите в с произвольное поле ссылку на css файл, он у вас подключится и будет использоваться, тем самым изменив отображение.

Подсветка категории в которой мы находимся

Полезные рецепты для WordPress

Если вы не знаете каким образом подсветить категорию в которой находится пользователь, попросту, является активной, надо добавить вот это:

#nav .current-cat{
    background:#999;
    color:#222;
    text-decoration:underline;
}

Как вы поняли это CSS и его надо вставлять в style.css вашей темы. Все настолько просто, потому что WordPress автоматически добавляет класс к активной категории и нам просто надо прописать стиль для него.

Сделаем title страницы дружественным к ПС

Полезные рецепты для WordPress

Во многих новых темах для WordPress этот код уже включен по умолчанию, проверьте и вы, стоит ли у вас такой код, ведь он делает title  страницы дружественным к поисковым системам.

<title>
<?php if (is_home () ) {
    bloginfo('name');
} elseif ( is_category() ) {
    single_cat_title(); echo ' - ' ; bloginfo('name');
} elseif (is_single() ) {
    single_post_title();
} elseif (is_page() ) {
    bloginfo('name'); echo ': '; single_post_title();
} else {
    wp_title('',true);
} ?>
</title>

Этот код генерирует название страницы в зависимости от того, какая сейчас открыта страница:

  • Если посетитель на главной: показывается название блога
  • Если посетитель на странице категорий: показывается название категории и название блога
  • Если пользователь находится на странице поста: показывается название поста
  • Если пользователь находится на странице:  показывается название блога и название страницы

SEO плагины WordPress обычно переписывают названи страниц, так что проверяйте, актуально ли данное решение для вас.

Спрятать сайдбар на главной странице

Полезные рецепты для WordPress

Сайдбар в WordPress достаточно важный элемент, но иногда его нужно скрыть на главной странице, я расскажу вам, как это замутить :)

Вам надо открыть файл index.php вашей темы и найти там строку:

<?php get_sidebar(); ?>

и заменить ее на следующую:

<?php if (!is_front_page()) {
    get_sidebar();
} ?>

Это все, теперь ваш сайдбар будет подключен на всех страницах, кроме главной.

Вывести все изображения из постов

Полезные рецепты для WordPress

Много людей интересовались, как же вывести все изображения опубликованные в постах. Мы придумали простое решение для этого дела.

Следующий код нужно будет вставить в код вашей темы WordPress, он ищет все изображения в постах, сохраняет их в массив и затем выводит.

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>

<?php
$szPostContent = $post->post_content;
$szSearchPattern = '~<img [^\>]*\ />~';

// Запускаем preg_match_all для сохранения всех изображений в $aPics
preg_match_all( $szSearchPattern, $szPostContent, $aPics );

// Проверяем на количество
$iNumberOfPics = count($aPics[0]);

if ( $iNumberOfPics > 0 ) {
     // Здесь мы решаем, что делать с изображениями
     // В этом примере мы их просто показываем
     for ( $i=0; $i < $iNumberOfPics ; $i++ ) {
          echo $aPics[0][$i];
     };
};

endwhile;
endif;
?>

Обработать изображения вы можете любым способом, можно подключить карусель на Ajax и выводить их красивенько.

Вывод списка результатов поиска

Полезные рецепты для WordPress

Мы можем вывести список результатов поиска на вашем блоге, создав небольшую простую функцию. где это можно применить – придумайте сами, думаю варианты есть.  Следующую функцию мы добавляем в наш файл с функциями – functions.php, который находится в папке с нашей темой, если не находится – создаем такой.

В этом примере мы выводим посты с Id 5 и 10:

function SearchFilter($query) {
    if ($query->is_search) {
        $query->set('cat','5,10');
    }
    return $query;
}

add_filter('pre_get_posts','SearchFilter');

Как сделать: Два цикла без дублирования постов

Полезные рецепты для WordPress

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

<h2>Цикл первый</h2>
<?php
$ids = array();
while (have_posts()) : the_post();
the_title();
?>
<br />

<?php $ids[]= $post->ID;
endwhile; ?>

Второй цикл будет проверять наличие Одинаковых Id и выводить уникальны:

<h2>Цикл второй</h2>
<?php
query_posts("showposts=50");
while (have_posts()) : the_post();
if (!in_array($post->ID, $ids)) {
  the_title();?>
  <br />
<?php }
endwhile; ?>

Мы использовали встроенную функцию php in_array(), тем самым избежав дубликатов. Как видите все очень просто. Таким образом можно сделать не два, а три и более циклов, то есть столько, сколько нам требуется.

Использование коротких кодов с атрибутами

Полезные рецепты для WordPress

Недавно я писал об использовании коротких кодов  в WordPress. Но функционал короткого кода можно расширить путем добавления атрибутов.

Данный код мы копируем в файл functions.php нашей темы:

function myUrl($atts, $content = null) {
	extract(shortcode_atts(array(
		"href" => 'http://'
	), $atts));
	return '<a href="'.$href.'">'.$content.'</a>';
}
add_shortcode("url", "myUrl");

Это пример возможного использования шоткода с атрибутом. Вызов его будет выглядеть примерно так:

[url href="http://www.wprecipe.ru"]Рецепты для WordPress[/url]