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,93 из 7, голосов - 44)
- Умный копирайт в 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
Вот по этому пункту 6) Уникальная тема категории
Создал я файл category-2.php, и положил в папку темы, все работает. Но если этот файл положить в отдельную папку, то шаблон перестает работать. Может знаете что надо подкрутить чтобы это исправить?
Andre, исправлять тут нечего, файл работает только в папке темы — это специфика движка вордпресс, иначе никак.
как сделать 5 пункт, только не для одной категории а скажем для пяти
vito, если верить информации с сайта вордпресс, то можно перечислить категории в массиве по типу такой конструкции:
Спасибо автору, отличная статья!
Заинтересовал пункт 2. А как условие прописать для страницы, выводящей записи произвольного типа?
Ян, статья достаточно древняя, сейчас многие SEO плагины позволяют легко редактировать title. Я рекомендую WordPress SEO by Yoast — на мой взгляд наиболее мощный модуль.
Приветствую.
Как для рубрик (к которым привязаны посты) сделать запрет на показ рекламы Google Adsense. Так как самих рубрик около 15 ну а публикаций соответственно немерено.
Так вот как для самих рубрик, сделать запрет на показ рекламы Google Adsense.
Еще момент важный. В посте отображается 4 рекламы (4 кода Adsense)
Александр, тут нужны условные операторы по аналогии с выводом текста только на главной. В вордпресс для рубрик есть in_category() функция. Для каждого вывода блока добавляете условие — если рубрика такая-то, то не выводить или наоборот.