Рекламное объявление

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

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

Это также продолжение продолжающейся серии, в которой я покажу вам, как легко настроить свой шаблон WordPress 2 новых крутых плагина Wordpress и понимание структуры темы WordpressНа этой неделе я расскажу о превосходной альтернативе часто встречающемуся All-In-One SEO; плагин, который дает вам возможности системы публикации Wordpress, но позволяет выводить ... Подробнее .

Вам также может быть приятно узнать, что мы добавили новый Категория Учебников WordPress

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

Ключевые понятия: запросы WordPress и цикл

Каждая страница вашего блога состоит из запроса к вашей базе сообщений. В зависимости от просматриваемой страницы запрос будет меняться. Например, ваша домашняя страница блога может использовать запрос «получить последние 10 сообщений в блоге“. При просмотре архивов категорий запрос может измениться на «получить последние 20 постов только для категории семейные фотографии, упорядочить результаты по дате публикации“. Каждый запрос будет возвращать набор результатов, и в зависимости от используемого шаблона страницы каждый результат будет проходить через основной «цикл» шаблона.

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

Однако для создания нашего пользовательского виджета нам просто потребуется создать дополнительный запрос, который захватит X произвольных сообщений плюс их изображения и каким-то образом отобразит их на боковой панели. Я уже показывал вам код на прошлой неделе захватить лучшее изображение Настройте свой блог с WordPress: полное руководствоХотите начать свой собственный блог, но не знаете как? Посмотрите на WordPress, самую мощную платформу для блогов, доступную на сегодняшний день. Подробнее Поэтому нам просто нужно знать, как создать новый виджет WordPress и разместить его на боковой панели.

Основной код виджета

Начните с создания нового файла .php в вашем WP-содержание / плагины каталог. Вы также можете следить за учебным пособием в автономном режиме, а затем загружать его с помощью интерфейса WordPress, но я считаю, что его легче писать по мере продвижения в случае необходимости отладки. Называй свой файл как хочешь, но я пойду с случайный пост-widget.php

Вставьте следующее в файл и сохраните. Не стесняйтесь изменить раздел вверху с моим именем, но пока не меняйте остальную часть кода. Это в основном скелет пустой виджет, и вы можете увидеть, где он говорит // КОД ВИДЖЕТА ЗДЕСЬ это где мы добавим нашу функциональность позже.

PHP. /* Название плагина: Random Post Widget. URI плагина: http://jamesbruce.me/ Описание: Случайный пост Виджет захватывает случайный пост и соответствующий эскиз, чтобы отобразить его на боковой панели. Автор: Джеймс Брюс. Версия: 1. URI автора: http://jamesbruce.me/ * / Класс RandomPostWidget расширяет WP_Widget. {function RandomPostWidget () {$ widget_ops = array ('classname' => 'RandomPostWidget', 'description' => 'Отображает случайную запись с миниатюрой'); $ this-> WP_Widget ('RandomPostWidget', 'Случайная запись и эскиз', $ widget_ops); } форма функции ($ instance) {$ instance = wp_parse_args ((массив) $ instance, array ('title' => '')); $ title = $ instance ['title'];

обновление функции php} ($ new_instance, $ old_instance) {$ instance = $ old_instance; $ instance ['title'] = $ new_instance ['title']; вернуть $ экземпляр; } виджет функции ($ args, $ instance) {extract ($ args, EXTR_SKIP); echo $ before_widget; $ title = empty ($ instance ['title'])? '': apply_filters ('widget_title', $ instance ['title']); if (! empty ($ title)) echo $ before_title. $ Название. $ After_title;; // КОД ВИДЖЕТА ЗДЕСЬ ЗДЕСЬ echo "

Это мой новый виджет! H1>"; echo $ after_widget; } } add_action ('widgets_init', create_function ('', 'return register_widget ("RandomPostWidget");'));

Как таковой, плагин не делает ничего, кроме распечатки большого заголовка со словами «Это мой новый виджет!“.

как создавать виджеты

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

написать свой собственный виджет

Новый запрос и петля

Чтобы сделать новый запрос к базе данных вашего блога, вам нужно использовать query_posts () работать вместе с несколькими параметрами, а затем запустить через вывод, используя цикл while. Давайте попробуем это - очень простой запрос и цикл для демонстрации. Замените строку кода, которая говорит:

со следующим:


// КОД ВИДЖЕТА ЗДЕСЬ. query_posts ( ''); if (have_posts ()): while (have_posts ()): the_post (); the_title (); ENDWHILE; ENDIF; wp_reset_query (); 

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

написать свой собственный виджет

Мы можем сделать это немного лучше, просто добавив некоторое форматирование HTML к выводу с помощью ECHO команда и создание ссылки на сообщение с помощью get_the_permalink () функция:

 query_posts ( ''); if (have_posts ()): echo "
    • “; while (have_posts ()): the_post (); эхо »
    • «.Get_the_title ().»

“; ENDWHILE; эхо »

“; ENDIF; wp_reset_query ();

написать свой собственный виджет

Уже выглядит намного лучше. Но нам нужен только один пост, выбранный наугад. Для этого мы указываем некоторые параметры в запросе:

 query_posts ( 'posts_per_page = 1 & OrderBy = Rand'); 

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

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


query_posts ( 'posts_per_page = 1 & OrderBy = Rand'); if (have_posts ()): echo "
    • “; while (have_posts ()): the_post (); эхо »
    • «.Get_the_title (); echo the_post_thumbnail (массив (220 200)); эхо

“; ENDWHILE; эхо »

“; ENDIF; wp_reset_query ();

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

как создавать виджеты

Вывод:

Посмотрите, как легко сделать свой собственный виджет, который может делать именно то, что вы хотите? Даже если вы не понимаете 90% кода, который я вам показал сегодня, вы все равно сможете немного его настроить, просто меняя переменные или выводя другой HTML. Сегодня мы написали целый виджет, но вы можете легко использовать только новый код запроса и цикла в любом из ваших шаблонов страниц.

Джеймс имеет степень бакалавра в области искусственного интеллекта и сертифицирован CompTIA A + и Network +. Он является ведущим разработчиком MakeUseOf и проводит свое свободное время за игрой в VR-пейнтбол и настольные игры. Он строит компьютеры с детства.