Опубликовано автор в категориях WordPress.

wordpress-snippets
Здравствуйте! Давно я не писал в блог. А еще дольше я не писал в блоге о WordPress, на котором, собственно, и работает мой «бортовой журнал». Но, пришло время исправить этот недостаток. Благо дело на гала попала интересная статья о 10 полезных сниппетах WordPress на заокеанском блоге. Она и стала источником этого поста, в котором я позволил себе удалить лишь один сниппет, который не столь актуален в Рунете, ввиду существования большого количества довольно добротных плагинов для воспроизведения подобного функционала. А в остальном, получился очень полезный материал.

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

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

<ul> <?php wp_list_categories('orderby=ID&order=ASC&depth=3&title_li=&exclude='); ?> </ul>

Источник – Codex. Например, я хочу создать список с глубиной вложенности 2 и категориями с ID 12 b 13:

<ul> <?php wp_list_categories('orderby=ID&order=ASC&depth=2&title_li=&exclude=12,13'); ?> </ul>

Если нужно вывести список страниц вместо категорий, то просто измените wp_list_categories на wp_list_pages.

2. Вывод наиболее популярных постов основываясь на числе комментариев

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

<ul>
<?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 5");
foreach ($result as $post) {
setup_postdata($post);
$postid = $post->ID;
$title = $post->post_title;
$commentcount = $post->comment_count;
if ($commentcount != 0) { ?>
<li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>">
<?php echo $title ?></a> {<?php echo $commentcount ?>}</li>
<?php } } ?>
</ul>

3. Вывод последнего прилепленного поста

Полезен для большинства тем в формате журнала. вывести прикрепленный пост вы можете с помощью кода ниже:

<?php
/* Get all sticky posts */
$sticky = get_option( 'sticky_posts' );
 
/* Sort the stickies with the newest ones at the top */
rsort( $sticky );
 
/* Get the 2 newest stickies (change 2 for a different number) */
$sticky = array_slice( $sticky, 0, 2 );
 
/* Query sticky posts */
query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) );
?>

4. Вывод meta информации, включая автора, теги, количество комментариев и дату публикации

Мета информация выводится почти во всех темах. Код ниже будет sdjlbnm данные в виде: «Опубликовал _автор _дата, с _число_комментарием комментариями и метками: _метки.

Опубликовал <?php the_author(); ?> <?php the_time('n/d/y'); ?>, с  <?php comments_number('no', 'one', '%'); ?> комментариями и метками: <?php the_tags(); ?>

5. Создаем область для виджетов с комментариями как использовать ее если виджеты не заданы

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

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Widget Area') ) : ?>
 
<h3>Область виджетов</h3>
 
<p>Это область вывода виджетов. Для того чтобы ее заполнить используйте инструмент виджетов</p>
 
<?php endif; ?>

Также вам понадобится следующий код в вашем файле functions.php:

<?php if ( function_exists('register_sidebar') )
register_sidebar(array(
'name' => 'Widget Area',
'before_widget' => 'you might want a <div class...> here',
'after_widget' => 'and a closing </div> here',
'before_title' => 'you might want a <h3> or <h4> here',
'after_title' => 'and </h3> or </h4> here',
)); ?>

6. Вывод «Хлебных крошек» Главная / Категория / Заголовок поста

«Хлебные крошки» важный элемент навигации, тем более, если ваш сайт имеет сложную многоуровневую структуру. И с помощью кода ниже вы можете вывести навигацию вида — Главная / Категория / Заголовок поста:

<?php bloginfo(‘home’); ?> / <?php the_category(); ?> / <?php the_title(); ?>

7. Правильная вставка jQuery

Это очень важная вещь, поскольку сегодня многие темы используют JavaScript эффекты построенные на основе этой библиотеки! Код ниже позволяет вставить собственную копию jQuery из ядра WordPress:

<?php wp_enqueue_script("jquery"); ?>

Его нужно вставить до wp_head тега.

8. Присваиваем тегу класс согласно типа страницы, ID поста/страницы и категории category

Это прекрасный сниппет, который взят из Thematic framework и должен быть помещен в ваш файл functions.php. Нужно поместить следующий код в functions.php файл:

<?php
// Генерируем семантические класс для BODY 
function thematic_body_class( $print = true ) {
global $wp_query, $current_user;
 
// Это действительно Wordpress блог?
$c = array('wordpress');
 
// Устанавливаем классы по дате и времени для BODY
thematic_date_classes( time(), $c );
 
// Генерируем семантические классы по типу выводимого контента
is_front_page()  ? $c[] = 'home'       : null; // For the front page, if set
is_home()        ? $c[] = 'blog'       : null; // For the blog posts page, if set
is_archive()     ? $c[] = 'archive'    : null;
is_date()        ? $c[] = 'date'       : null;
is_search()      ? $c[] = 'search'     : null;
is_paged()       ? $c[] = 'paged'      : null;
is_attachment()  ? $c[] = 'attachment' : null;
is_404()         ? $c[] = 'four04'     : null; // CSS does not allow a digit as first character
 
// Специальные классы для BODY когда находимся в виде одного поста
if ( is_singular() ) {
$c[] = 'singular';
} else {
$c[] = 'not-singular';
}
<pre>
<a href="http://wpshout.com/wp-content/uploads/2009/09/dynamic-class.txt">Загрузить весь код сниппета можно здесь</a> и потом заменить <strong><body></strong> в теме на:
<pre lang="php">
<body class="<?php bodystyle(); ?>" >

10. Используем custom fields для вывода изображений (и ресайзим их с помощью timthumb), с помещением альтернативной картинки, если картинки не существует.

Этот сниппет позволяет вам добавить custom field «Изображение» (Image — именно такое машинное имя должно иметь поле), которое потом будет уменьшено с помощью timthumb (который нужно загрузить в /ваша_тема/scripts/) и выведено в виде превью на странице архива или на главной. Если поле «Изображение» не будет обнаружено, то выведется картинка-заглушка. Код сниппета ниже:

<?php $postimageurl = get_post_meta($post->ID, 'Image', true);
if ($postimageurl) {
?>
<img src="<?php bloginfo(‘template_url’); ?> /scripts/timthumb.php?src=<?php echo get_post_meta($post->ID, "Image", true); ?>&h=250&w=250&zc=1" alt="<?php the_title(); ?>" />
<?php } else { ?>
<img src="<?php bloginfo('template_url'); ?>/images/noimage.jpg" alt="No image available" />
<?php } ?>

P.S. мысли о том, чего не хотелось бы…

Да, всякое бывает. Бывает, что вот — ты красавец-мужчина и все ukranian models смотрят на тебя с неподдельным желанием. А ты… Ты тратишь свои миллионы на лечение простатита и твоя страсть уже давно не модели, а дизайн интерьера квартир, который позволяет внести хоть немного цветов в серость жизни… Вот чего не хотелось бы испытать никогда!

12 комментариев к записи “9 полезных сниппетов для WordPress”

  1. Yakov

    Чувак, вот за этот пост — отдельное спасибо! Как все действительно великое, это требует переосмысления перед применением! Ухожу думать, вернусь через пару дней.

    Ответить
  2. Эсъюдс

    У меня такой вопрос. Хотел бы вставить в блог визуализацию на основе скрипта MooWheel (http://labs.unwieldy.net/moowheel/). Но кроме того, что приходится его код вставлять в head’ер, так еще и не работает. Можно избежать обязательного употребления скриптов в хедере, переносить их в бади и чтобы JavaScript и Ajax работали?

    Ответить
    • Мелифаро

      можно, только учти, что все эти скрипты могут не работать из-за конфликта друг с другом. Попробуй запихнуть в iframe

      Ответить
  3. Руслан

    Доброго времени суток, я начинающий, и ещё малознающий вебмастер)
    вот вывел свой сайт по запросу (восточная культура) на первое место в яндексе, а трафика 10челов в день, хотя в вордстате 3к в месяц запрашивает, и мне подсказали что снипет нужно нормальный поставить, и трафика больше будет. Подскажите куда мне его лучше впихнуть? текст я уже сбацал, просто не знаю как оформить, если не в напряг будет) east-culture.ru

    Ответить
    • Hiway

      Руслан, если вы говорите про сниппеты в контексте отображения в поисковой выдаче, то наверное вы имеете ввиду сниппеты для Яндекса, это совсем не в тему этого поста.

      Ответить

Оставить комментарий

  • (не будет показан)