Сен
29
39

17 полезных приемов и хаков для WordPress

Всем привет, я — Найко Михаил — дизайнер, иллюстратор и блоггер. Живу и работаю в Москве. Кроме страсти к дизайну и веб-технологиям, люблю кино, спорт и свою девушку) Также смотрите мой блог в веб-дизайне

Фанатов WordPress становится больше с каждым днём, и многие используют этот движок уже просто как CMS. Он настолько прост, что понятен даже новичку-не-программисту. Ниже я покажу несколько приёмов, которые используются многими продвинутым блоггерами, в основном приёмы эти направлены на юзабилити;

1) Динамичная подсветка меню

Как сделать динамичную подсветку меню ,как, пример, тут. Пишем условие: если это первая страница Home / Category / Archive / Search / Single, добавим class=current к тегу li (он будет подсвечиватся как Gallery). Если второй элемент будет «About», добавьте класс «current». и т.д.

 <ul id="nav">
  <li<?php if ( is_home() || is_category() || is_archive() || is_search() || is_single() || is_date() ) { echo ' class="current"'; } ?>><a href="#">Gallery</a></li>
  <li<?php if ( is_page('about') ) { echo ' class="current"'; } ?>><a href="#">About</a></li>
  <li<?php if ( is_page('submit') ) { echo ' class="current"'; } ?>><a href="#">Submit</a></li>
</ul>

2) Динамичные теги в заголовке

Для того, чтобы использовать динамичные заголовки для страниц, пишем в header.php.

<title>
<?php
if (is_home()) {
	echo bloginfo('name');
} elseif (is_404()) {
	echo '404 Not Found';
} elseif (is_category()) {
	echo 'Category:'; wp_title('');
} elseif (is_search()) {
	echo 'Search Results';
} elseif ( is_day() || is_month() || is_year() ) {
	echo 'Archives:'; wp_title('');
} else {
	echo wp_title('');
}
?>
</title>

3) Динамичный контент:

Если хотите, чтобы какой-то контент находился только на первой странице , пишем:

<?php if ( is_home() ) { include ('file.php'); } ?>

Чуть более детально данный вопрос с некоторыми нюансами рассмотрен в статье вывод текста на главную в wordpress + информация про условные операторы.

4) Выделяем посты отдельной категории

Давайте назовём категорию с categoryID 2 — «Feature». Что сделать, чтобы все посты из этой категории выделялись как-то? Нужно добавить в цикл этот код:

 <?php if ( in_category('2') ) { echo ('class="feature"'); } ?>

5) Как сменить тему отдельной категории

Допустим, вы хотите сменить тему для постов какого-то отдельной категории. Для этого можно воспользоваться функцией in_category.
Если по-умолчанию стоит single.php, используйте этот код. Если пост в категории 1 используем single1.php, для категории 2, — single2.php, ну и для других single_other.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');
 
  }
? >

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

6) Уникальная тема категории

Что если вы хотите особенную тему для определённой категории? Просто сохраним тему этой категории под именем category-2.php (именно по таком шаблону!). Так, category-2.php будет использоваться категорией categoryID 2, category-3.php — категорией categoryID 3 и т.д.

7) Реклама Google после первого поста.

Довольно просто решаема задача. Для этого нам нужно задать переменную ($loopcounter) в цикл. Если $loopcounter меньше или равно 1, подключается код google-ad.php.

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

Query Posts

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

8) Выводим последние посты

последние 5 постов:

<?php query_posts('showposts=5'); ?>
 
<ul>
  <?php while (have_posts()) : the_post(); ?>
  <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
  <?php endwhile;?>
</ul>

9) Посты определённой категории

Выводим 5 постов категории с categoryID 2

<?php query_posts('cat=2&showposts=5'); ?>
 
<ul>
  <?php while (have_posts()) : the_post(); ?>
  <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
  <?php endwhile;?>
</ul>

10) Исключить категорию

Допустим, нам нужно исключить отображение какой- либо категории (categoryID 2):

<?php query_posts('cat=-2'); ?>
 
<?php while (have_posts()) : the_post(); ?>
  //the loop here
<?php endwhile;?>

Произвольные поля (Custom Field )

Custom Field — очень полезная вещь, довольно часто используется для вывода информации после поста. Используется, например, для вывода информации об авторе поста.

11) Как добавить картинку с ссылкой на сам пост

Для начала добавим Произвольное поле в пост.

Чтобы отобразить изображение и прикрепить к нему ссылку на пост, помещаем следующий код в цикл (перед самим текстом поста):

<?php //получаем картинку (custom field) ?>
<?php $image = get_post_meta($post->ID, 'article_image', true); ?>
 
<a href="<?php the_permalink() ?>"><img src="<?php echo $image; ?>" alt="<?php the_title(); ?>" /></a>

Не забывайте, что произвольных полей после поста может быть несколько. Похожий эффект можно увидеть на Best Web Gallery, где подобным образом отображены миниатюры, ссылки URL и подсветка информации. Также о произвольных полях можно почитать в данной статье — использование custom fields в WordPress.

WP List Pages

Тег wp_list_pages используется для отображения списка страниц в хедере и сайдбаре

12)Site map

Для того, чтобы отобразить Site map, достаточно добавить этот код в страницу sitemap.php

<ul>
  <?php wp_list_pages('exclude=12&title_li=' ); ?>
</ul>

Замечу, что pageID 12 исключена, т.к. это страница — сама sitemap.php, и её не нужно отображать…
Метод работает, хотя, наверное, лучше воспользоваться более стандартным методом и построить карту сайта с помощью плагина dagon design sitemap generator.

13) Динамичное субстраничное меню

Добавьте этот код в sidebar.php и он отобразит субстраничное меню, если субстраницы есть на этой странице:

<?php
$children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');
if ($children) { ?>
 
<ul>
  <?php echo $children; ?>
</ul>
<?php } ?>

14) Тема страницы

Хорошо бы не упускать и такую функцию как Page Template, которая позволяет задавать новую тему для вашего блога. Для начала, нужно создать саму тему, затем нужно обозначить странице своб собственную тему. Вот как она выглядит (напр., portfolio.php)

<?php
/*
Template Name: Portfolio
*/
?>
 
<?php get_header(); ?>
  //the loop here
<?php get_footer(); ?>

При написании или редактировании страницы, справа можно будет увидеть “Page Template”, и там указать нужную тему.

Опции WordPress

Последнее, что мы рассмотрим, будут опиции самого WordPress и блога в целом.

15) Стартовая страница

По умолчанию, WordPress располагает блог на стартовой странице сайта. Но если вы хотите какую-то другую страницу, например, приветствие, то зайдите Admin > Options > Reading.

16) Адреса страниц

По умолчанию , WordPress использует ссылки вида Permalinks www.yoursite.com/?p=123, которе не красивы и не понятны поисковикам. Но можно поменять это в Admin > Options > Permalinks (Параметры > Постоянные ссылки). Неплохой вариант записи адресов вот этот: /%category%/%postname%/

17) Префикс категории

По умолчанию , WordPress использует префикс категорий «category» (напр., yoursite.com/category/cat-name/). Но чтобы заменить его на «article» , зайдите в Options > Permalinks (Параметры > Постоянные ссылки), и ссылки будут выглядеть так: yoursite.com/article/cat-name/

Если хотите, то префикс category можно удалить вообще с помощью специальных плагинов.

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

P.S. Постовой. Для тих, хто планує серйозно зайнятися дизайном будуть корисні Відеоуроки з веб-дизайну – українською! — приєднуйтесь до читачів сайту.
Интернет магазин ЛинзМастер предлагает контактные линзы, цветные контактные линзы, а также растворы и аксессуары.

рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 14, средний балл: 5,57 из 7)
Загрузка...

категория Категории: Возможности; Хаки и секреты;
теги Теги: , , , , .

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

  • Andre   14.05.2013

    Вот по этому пункту 6) Уникальная тема категории

    Создал я файл category-2.php, и положил в папку темы, все работает. Но если этот файл положить в отдельную папку, то шаблон перестает работать. Может знаете что надо подкрутить чтобы это исправить?

  • Tod   14.05.2013

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

  • vito   04.02.2014

    как сделать 5 пункт, только не для одной категории а скажем для пяти

  • Tod   06.02.2014

    vito, если верить информации с сайта вордпресс, то можно перечислить категории в массиве по типу такой конструкции:

    <?php if ( in_category( array('apples', 'bananas') )) {
    	// ваш код
    }
    ?>
  • Сергей   27.04.2016

    Спасибо автору, отличная статья!

  • Ян   10.05.2016

    Заинтересовал пункт 2. А как условие прописать для страницы, выводящей записи произвольного типа?

  • Tod   11.05.2016

    Ян, статья достаточно древняя, сейчас многие SEO плагины позволяют легко редактировать title. Я рекомендую WordPress SEO by Yoast — на мой взгляд наиболее мощный модуль.

  • Александр   25.11.2016

    Приветствую.

    Как для рубрик (к которым привязаны посты) сделать запрет на показ рекламы Google Adsense. Так как самих рубрик около 15 ну а публикаций соответственно немерено.
    Так вот как для самих рубрик, сделать запрет на показ рекламы Google Adsense.
    Еще момент важный. В посте отображается 4 рекламы (4 кода Adsense)

  • Tod   28.11.2016

    Александр, тут нужны условные операторы по аналогии с выводом текста только на главной. В вордпресс для рубрик есть in_category() функция. Для каждого вывода блока добавляете условие — если рубрика такая-то, то не выводить или наоборот.

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


Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!

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

Последние посты
Лучшее в категории
Облако тегов
Скажи свое мнение!

В чем основные плюсы Wordpress?

Посмотреть результаты

Загрузка ... Загрузка ...
Друзья проекта
Последние новости