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. Постовой. Для тих, хто планує серйозно зайнятися дизайном будуть корисні Відеоуроки з веб-дизайну – українською! — приєднуйтесь до читачів сайту.
Интернет магазин ЛинзМастер предлагает контактные линзы, цветные контактные линзы, а также растворы и аксессуары.
комментариев 39 к статье “17 полезных приемов и хаков для WordPress”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Як сховати відсутні товари в Woocommerce шорткодах та схожих товарах
- Сервіс AdMaven + плагін для монетизації трафіка на WordPress сайтах
- Плагіни для створення стрічки новин з біжучим рядком в WordPress
- Як змінити розміщення кнопки оформлення замовлення в WooCommerce
- Плагін WHWS Display In Stock Products First – відображення товарів в наявності першими
- Підписка MonsterONE: чи варто використовувати цей сервіс у 2023 році? (+5 продуктів, які треба скачати в першу чергу)
- Онлайн генератор ссылок на мессенджеры для WordPress и не только
- WooCommerce (46)
- Безопасность (12)
- Видео (6)
- Виджеты (28)
- Возможности (141)
- Вопрос-ответ (6)
- Начинающим (52)
- Новости (46)
- Оптимизация (23)
- Плагины (246)
- Сервисы (87)
- Хаки и секреты (87)
- Шаблоны (45)
- Записи и посты wordpress, оформление записи (5,91 из 7, голосов - 47)
- Проблема с адаптивными изображениями в Gutenberg редакторе WordPress (3,86 из 7, голосов - 49)
- Умный копирайт в footer.php для wordpress (5,63 из 7, голосов - 30)
- Обновление плагинов и тем в WordPress: автоматическое, через FTP, скрытие уведомлений (5,19 из 7, голосов - 31)
- Polylang — плагин для мультиязычных сайтов на нескольких языках в WordPress (4,42 из 7, голосов - 31)
- Плагин TinyMCE Advanced – wordpress текстовый редактор (6,35 из 7, голосов - 20)
- Рубрики и категории wordpress, функция wp_list_categories (6,05 из 7, голосов - 20)
- Дизайн Мания - о веб-дизайне и не только.
- Tod's Blog - все про заработок онлайн.
- Вебдванольные заметки - обзоры веб-сервисов.
- Советы по выбору холодильника LG с технологией No Frost
- Зачем нужны Wi-Fi ретрансляторы и как выбрать подходящую модель
- Введение в онлайн-казино Slotor777: многообразие игр и привлекательные бонусы
- Необходимость использования облачного хранилища в наше время, что важно и как выгодно?
- Спрощення процесу звітності за допомогою програми BAS Бухгалтерія
- Технологія підключення інтернету GPON та її переваги
- За що гравці найбільше цінують Lineage 2
- Для каких проектов нужна аренда виртуального сервера и что такое VPS
Одна из лучших по моему мнению подброк хаков для вп ;)
А критика принимается?
пункт 1 не актуальный, так как вордпресс сам добавляет класс current_page_item для меню страниц и current_menu_item для меню, созданого в wp3.0+
пункт 2 делает плагин All in SEO Pack, который почти всегда и все ставят.
остальные пункты в принципе ок, хотя в них нет ничего из того, чего бы не было в официальном wordpress codex
Седьмым пунктом воспользуюсь. Спасибо за инфо.
lilumi, спорить не буду:) все правильно сказано.
кстати в седьмом коде ошибка. в тексте предлагают код гугла вставить в файл google-ad.php а в самом коде вызывается файл ad.php
Вот спасибо! как раз искал про картинки к постам :)
С четвертого по шестой пункты, как нельзя кстати, только вчера подумал о том как можно этакое сделать , спасибо
Вот читая такие заметки и понимаешь, что сам ещё лузер)
lilumi
там указано не название ad.php , а символическое название файла с рекламой.
а вообще спасибо за дополнения)
Nomad, все приходит с опытом)
спасибо за информацию, давно думал попробывать это :)
*lilumi 29.09.2010
А критика принимается?…пункт 2 делает плагин All in SEO Pack, который почти всегда и все ставят…*
Не соглашусь: Я, например, на начальном этапе лучше ручками сделаю, что бы потом отсутсвие плагинов не вводило меня в ступор
Некоторые, вещи знал, но также нашел много нового, сайту респект
Прочитав все эти рецепты понял для себя что в WordPress, ели не полный ноль то близкий к нему и расти есть еще куда.
Из всего что здесь написано знал только несколько пунктов, с остальными придется поэкспериментировать чтоб понять как все работает.
Статья отличная. Не получилось только 5й пункт осуществить. Скажите пожалуйста куда вставлять этот код?
Здравствуйте, скажите пожалуйста как установить стартовую страницу если в Admin > Options > Reading, нету выбора Front page, точнее там вообще нет этих опций, там только сколько постов выводить и кодировка страниц, ну и RSS.
ps версия 3.0.1–ru_RU.
Тима, код добавляется в single.php — система попадает на него, а там условие и переходит на другие файлы шаблонов.
скажите пожалуйста как реализовать №9, надо создать новый файл стиля? и туда впихнуть код?
Игорь, создавать ничего не нужно, данный код можно применить к выборке постов в файле index.php и архива archiv.php, можно также с помощью похожей конструкции выводить любые посты в сайдбаре — подробнее об этом советы по работе с GoGetLinks для блогов на wordpress.
Вывод заголовков в п. 2) сделан не в самом лучшем виде — хотя бы уже потому, что в title должно выводится в том числе и название блога, а этот код не позволит решить эту проблему.
Кроме того, не указано — как выводить заголовок для страницы.
Первый и второй моменты решаются так:
elseif (is_page()) {
echo wp_title(»); echo » | «; bloginfo(‘name’);
где
wp_title(»); — заголовок материала или страницы.
echo » | «; — вывод разделителя «|»
bloginfo(‘name’); — вывод заголовка блога.
В целом это будет работать так, как сделано в заголовке этого же блога.
Остальные моменты — по аналогии.
М-да, кавычки покалечили весь код…
Yaroslav.CH, суть замечания ясна в любом случае) Спасибо. Для отдельных страниц лучше заголовки плагином выводить.
Спасибо за проделанную работу, статья получилась познавательная и содержательная.
Сань. не подскажешь как сделать кнопку Цитировать в комментариях?
Вопрос по 5-му пункту: в какое место шаблона вставлять сей код?
zenith, этот код добавляется в single.php, хотя сейчас (правильнее) использовать для отдельных категорий разные файлы шаблонов — подробнее об этом было в «официальном кодексе вордпресс».
По первому пункту вопрос.
А в каком файле добавлять?
И если можно разжуйте поподробнее. У меня не складывается, что и куда: Если второй элемент будет «About», добавьте класс «current». А если не будет? А если будет не «About»? И как узнать?
gsg, добавлять в том файле где у вас меню — на 99% это header.php. Фишка этого хака в том, что вы добавляете меню вручную и прописываете каждый пункт… потом условие IF проверяет — если это страница about, то добавить класс current в этот пункт. Дальше для класса current в стилях style.css нужно прописать стиль для активного пункта меню.
Отличная подборка, прочитал много интересного. Спасибо.
Хорошая статья, много нового и полезного узнал.
Правда, в некоторых пунктах не разобрался, но на данном этапе мне это и не надо. Зато буду знать, куда зайти, если что.