Инструкция. Неполадки. Безопасность. Приложения. Интернет
  • Главная
  • Неполадки
  • Примеры написания кода в wp. PHP код в WordPress — лучшие практики. Постраничная навигация без плагина

Примеры написания кода в wp. PHP код в WordPress — лучшие практики. Постраничная навигация без плагина

Flector 5

WP-Syntax

Несколько раз в комментариях меня спрашивали, что за плагин я использую для вставки кода в текст статей и комментариев. Так вот, отвечаю - это WP-Syntax . На самом деле плагинов для вставки кода не один десяток и какой именно из этих плагинов использовать решать только вам. Мне же понравился WP-Syntax тем, что он очень прост в использовании, поддерживает синтаксис кучи языков программирования, а также умеет исправлять испорченный визуальным редактором код, преобразовывая HTML -коды символов в сами символы.

Скачиваем плагин с его домашней страницы и устанавливаем его:

1. Распаковываем архив.

2. Копируем папку wp-syntax в /wp-content/plugins/ .

3. Заходим в админку блога на вкладку "Плагины " и активируем плагин.

Никаких настроек в плагине нет и после активации плагина вы уже можете начать вставлять код в ваши статьи. Правильный синтаксис вставки кода выглядит так:

Код
, где LANGUAGE это обозначение языка программирования, а line="1" это необязательный параметр, указывающий плагину включить нумерацию строк кода с указанного номера. Список обозначения языков программирования вы можете посмотреть , но для большинства языков обозначение будет равно названию языку (php , java , css , perl , sql и др.). Примеры использования:

1. PHP , без нумерации строк.

\\ n" ; } ?>

2. JAVA , c нумерацией строк.

1 2 3 4 5 public class Hello { public static void main(String args) { System .out .println ("Hello World!" ) ; } }

public class Hello { public static void main(String args) { System.out.println("Hello World!"); } }

3. Ruby , c нумерацией строк, начиная с 18 строки.

18 19 20 21 22 class Example def example(arg1) return "Hello: " + arg1.to_s end end

class Example def example(arg1) return "Hello: " + arg1.to_s end end

Одна из интересных особенностей плагина состоит в том, что он умеет преобразовать HTML -коды символов в сами символы. То есть с этой функцией вам не придется беспокоиться насчет того, что визуальный редактор испортит вам вставленный код (сами теги

 и 
должны быть вставлены не в визуальном редакторе). Для этого надо использовать параметр escaped="true" и тогда код вида:

 
Hello

превратится в:

> Hello>

Hello

Если честно, то про эту функцию с escaped="true" я узнал совсем недавно, а до этого мне приходилось хранить весь используемый код в отдельном текстовом файле и вставлять его лишь после полного написания статьи и перед нажатием кнопки "Опубликовать ". После того, как я оценил удобство использования этой функции на другие плагины подсветки синтаксиса мне даже и смотреть не хочется:)

Здравствуйте, уважаемые читатели блога сайт. Сегодняшнюю публикацию я решил посвятить вопросу написания статей в HTML редакторе WordPress ().

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

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

Использование только HTML редактора в WordPress

Но дело было даже не в HTML, а в удобстве выполнения повседневных и часто встречающихся действий. Да, редактор WordPress, используемый по умолчанию, позволяет одной кнопкой выделять жирным (тег STRONG) и курсивом (EM), вставлять ссылки, цитаты, картинки, нумерованные и маркированные списки, выделять различный код и .

Но мне этого было недостаточно, т.к. в тексте статей я активно использовал внутренние заголовки различных уровней (от H2 до H5), выделял код (PHP, CSS и т.п.) специальными тегами и делал многое другое.

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

Но эта проблема успешно разрешилась благодаря замечательному WP плагину Post Editor Buttons, с помощью которого можно добавить сколько угодно много дополнительных кнопок на панель инструментов HTML редактора, запрограммировав их на определенные действия.

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

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

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

К тому же, думаю, что начинающему блогеру или же тем, кто еще только задумывается о создании и ведении собственного проекта, будет не безынтересно узнать о том, как все оказывается просто в WordPress, если знать, что и где сделать для получения нужного результата. Ну ладно, вступление затянулось, пора приступать непосредственно к изложению материала.

Для тех у кого пока нет своего WP блога, но желание стать блогером имеется, или же для тех, кто хочет переехать с другого блогового движка или бесплатной платформы на WordPress, я приведу ссылки на материалы по его установке и первоначальной настройке :

Приступаем к написанию статьи в HTML редакторе WordPress

Итак, для написания новой статьи вам нужно будет зайти в админку (http://sait.ru/wp-admin/) и выбрать из левого меню (если у вас используется стандартное оформление админки WP) пункт «Добавить новую» в области «Записи».

В результате откроется стандартная страница добавления статьи (поста), в которой будет присутствовать поле для ввода ее заголовка и большое поле для ввода текста поста.

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

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

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

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

Почему же так важен заголовок для продвижения страницы в поисковых системах? Да потому, что для них он является основным критерием определения релевантности (степени соответствия — и прочие сложные слова) вашей статьи тому или иному поисковому запросу.

Хотя нет, не совсем так. Не название поста, а заголовок страницы TITLE является важнейшим критерием для поисковиков при определении позиции по тому или иному поисковому запросу ( смотрите во всех подробностях).

А при чем здесь тогда заголовок поста в WP? А при том, что правильный TITLE должен формироваться из названия статьи плюс названия всего блога, и именно в таком порядке. Кстати, настроить правильное формирование TITLE в WordPress сможете . Плагин просто замечательный, одновременно позволяющий решить массу вопросов по внутренней оптимизации.

Обращаю ваше внимание на различие между HTML тегом логического выделения «STRONG» и еще одним тегом выделения жирным «B», а так же между «EM» и «I». Первые из этих тегов (STRONG и EM ) следует использовать не только для привлечения внимания читателей к важным моментам текста.

Поисковики будут учитывать с большим весом слова и словосочетания, выделенные этими тегами акцентирования (STRONG и EM), по сравнения с обычными, не выделенными словами текста. Однако, сейчас нужно быть с этим очень осторожным, чтобы не перегнуть палку и не .

Выбор оптимальной структуры заголовков уровня H1-H6

Теперь что касается тегов заголовков H1-H6, которые тоже могут использоваться в статьях блога для расставления акцентов на нужных словах и фразах.

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

Кроме того, что внутренние подзаголовки (обычно начиная с уровня H2, H3 и далее) предоставляют дополнительную возможность структурирование текста, что улучшает их восприятие читателями.
Но есть еще один вопрос внутренней оптимизации сайтов, который связан с уровнями заголовков (от H1 до H6), используемыми на страницах WordPress блога.

Основной способ распределения уровней заголовков по вебстранице гласит, что заголовок всей статьи должен быть заключен в тег H1 (самый высокий уровень) и он должен быть один на странице , ну а все внутренние подзаголовки в тексте должны начинаться с H2.

Кстати, хочу посоветовать вам очень удобный способ, позволяющий наглядно увидеть в WordPress, где и какого уровня заголовки используются на том или ином сайте. Это плагин для FireFox () под названием .

Так вот, если вы выберите из меню этого плагина (его меню добавляется в верхнюю часть браузера) пункты «Контуры» — «Контуры заголовков», то все найденные на открытой в данный момент в браузере вебстранице будут обведены разноцветными прямоугольниками, рядом с которыми будет подписан их уровень H1 -H6.

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

Этот Маул в какой-то из своих статей упомянул, что заголовок уровня H1 должен быть на сайте одинаков для всех вебстраниц, но правда свою идею он никак не аргументировал. Тем не менее, я использую именно его схему. Для внутренних подзаголовков использую теги H3 и H4 (иногда и H5).

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

Теперь еще надо немного рассказать о том, как можно в WordPress поменять урони HTML тегов заголовков, например, для статей, или добавить, как это сделал я, один общий для всех уровня H1.

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

/wp-content/themes/Название темы/

Для того, чтобы яснее представлять структуру и предназначение файлов (шаблонов) темы оформления WordPress, советую вам ознакомиться со статьей приведенной в самом начале этой публикации (в списке).

Давайте посмотрим, где можно изменить уровень основных названий статей, расположенных на главной (за ее вид отвечает файл INDEX) и на страницах с полными версиями статьями (файл SINGLE).

Откроем сначала на редактирование INDEX. У меня в нем названия статей WordPress заключены в HTML тег H2 (второго уровня) и кроме этого они являются ссылками, ибо заключены в тег ссылки A:

" rel="bookmark" title="Постоянная ссылка ">

В постах же (за их внешний вид отвечает файл SINGLE) основные заголовки уже не будут являться ссылками, хотя тоже имеют уровень H2:

Если вас не устроит второй уровень, то просто поменяйте в этих файлах (INDEX и SINGLE) теги H2 на теги H1 и сохраните произведенные изменения (хотя, для главной этого делать нельзя, ибо будет больше одного H1 на странице, что не есть хорошо).

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

Но вернемся к нашему HTML редактору WordPress и посмотрим, какие возможности он нам предоставляет, чего нам в нем не хватает, а так же рассмотрим способ расширения его возможностей. Вот скриншот панели инструментов моей админки, на котором красным выделены те кнопки, которые присутствуют по умолчанию:

Обратите внимание, что кнопки с надписями «b» и «i» на самом деле служат для вставки тегов STRONG и EM.

Но все эти дополнительные кнопки можно будет добавить отдельно в WordPress с помощью замечательного плагина Post Editor Buttons , об установке и работе с которым я расскажу уже во второй статье этой серии. Поэтому оставайтесь на связи, подписываетесь на ленту новостей и не пропустите самое интересное.

Удачи вам! До скорых встреч на страницах блога сайт

Вам может быть интересно

Пропало левое меню в админке WordPress после обновления Пустая страница при просмотре больших постов (статей) в WordPress Где скачать WordPress - только с официального сайта wordpress.org Как автоматически добавить атрибут Alt в теги Img вашего блога на WordPress (там, где их нет) Как отключить комментарии в WordPress для отдельных статей или всего блога, а так же убрать или наоборот подключить их в шаблоне Как создать список статических страниц в WordPress с помощью wp_list_pages (улучшаем заработок на вечных ссылках и статьях)
Установка WordPress в деталях и картинках, вход в админку WP и смена пароля Смайлики в WordPress - какие коды смайлов вставлять, а так же плагин Qip Smiles (красивые смайлики для комментариев)
Снижение потребляемой в WordPress памяти при создании страниц - плагин WPLANG Lite для подмены файла локализации
Как войти в админку WordPress, а так же поменять логин и пароль администратора выданные вам при установке движка
Настройки блога на WordPress, которые вы должны сделать сразу после его установки

Здравствуйте, уважаемые читатели a! Я уже упоминал о важности того, чтобы иметь под рукой качественную подборку полезных фрагментов (вставок) кода. Однако рассматривались . Сегодняшний пост будет посвящен фрагментам кода, с помощью которых можно расширить или усовершенствовать работу сайта на движке . Подборка состоит из 10 фрагментов кода. Приступаем:

Постраничная навигация без плагина

Динамический копирайт текст

Этот фрагмент позволяет создавать простой текст авторского права в подвале. Дата устанавливается автоматически, используется функция the_date() .
Просто скопируйте фрагмент в свой footer.php :

< b> (c)
| < a href= "" >
|

Информация о пользователе

WordPress позволяет пользователям добавлять информацию о себе в своем профиле в WP Admin. Для отображения информации пользователей, Вы можете использовать этот фрагмент:

Для работы кнопочки необходимо подключиться к , добавляем следующую строку в файл header.php :

< script type= "text/javascript" src= "https://apis.google.com/js/plusone.js" >

PHP код в тексте

Бывает при написании статьи нужно вставить код , но если его просто вставить то он не отобразиться. Чтобы этого избежать используем следующий фрагмент, его необходимо добавить в файл function.php темы:

Не забудьте убрать пробелы в тегах!
А работает это следующим образом, в месте где необходимо вставить PHP код, выделяем его вот так:

[ code] [ / code]

Исключить записи с главной страницы

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

1
2
3
4
5
6
7
8
9

function excludeCat($query ) {
if ( $query -> is_home ) {
$query -> set ("cat" , "-3,-5,-23" ) ;
}
return $query ;
}
add_filter("pre_get_posts" , "excludeCat" ) ;
?>

«Хлебные крошки» без плагина

Ну и на закуску, вот фрагмент кода с помощью которого на блоге можно организовать так называемые «хлебные крошки», это дополнительный элемент навигации, когда отображается путь в виде ссылок на страницы выше рангом на страницу категории и главную. Примерно вот так (Главная->Категория 1->Название статьи). Данный фрагмент кода необходимо вставить в файл function.php Вашей темы:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

function the_breadcrumb() {
echo "

    " ;
    if (! is_home() ) {
    echo "
  • echo get_option("home" ) ;
    echo "">" ;
    echo "Главная" ;
    echo "
  • " ;
    if (is_category() || is_single() ) {
    echo "
  • " ;
    the_category("
  • " ) ;
    if (is_single() ) {
    echo "
  • " ;
    the_title() ;
    echo "
  • " ;
    }
    } elseif (is_page() ) {
    echo "
  • " ;
    echo the_title() ;
    echo "
  • " ;
    }
    }
    elseif (is_tag() ) { single_tag_title() ; }
    elseif (is_day() ) { echo "
  • Архив за " ; the_time("F jS, Y" ) ; echo "
  • " ; }
    elseif (is_month() ) { echo "
  • Архив за " ; the_time("F, Y" ) ; echo "
  • " ; }
    elseif (is_year() ) { echo "
  • Архив за " ; the_time("Y" ) ; echo "
  • " ; }
    elseif (is_author() ) { echo "
  • Архив автора " ; echo "
  • " ; }
    elseif (isset ($_GET [ "paged" ] ) && ! empty ($_GET [ "paged" ] ) ) { echo "
  • Архив" ; echo "
  • " ; }
    elseif (is_search() ) { echo "
  • Результат поиска" ; echo "
  • " ; }
    echo "
" ;
}
?>

Что использовать эти «хлебные крошки», добавляем в файлы (archive.php, category.php, page.php, single.php, search.php) следующую функцию:

Внешний вид «хлебных крошек» оставляет желать лучшего) Поэтому Вам придется поработать над стилями!

На этом все =)

Чтобы оставаться в курсе свежих статей и уроков подписывайтесь на

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

#button { font-weight: bold; border: 2px solid #fff; }

Чтобы получить результат, аналогичный приведенному выше фрагменту, заключите свой код в эти теги:

Ваш код

Параметр «language» определяет язык и правила подсветки синтаксиса. Поддерживаются следующие значения:

  • actionscript3
  • coldfusion
  • csharp
  • delphi
  • erlang
  • fsharp
  • groovy
  • javascript
  • javafx
  • matlab
  • powershell
  • python
  • scala

Если значение параметра «language» не задано, используется значение «text» (без подсветки синтаксиса).
Код между тегами «code» будет автоматически закодирован для отображения, поэтому вам не стоит беспокоиться об элементах HTML или о чем-либо подобном.

Параметры конфигурации

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

  • autolinks (true/false) — Каждый URL в коде отображается как гиперссылка. Значение по умолчанию: true.
  • collapse (true/false) — Если задано значение true, при загрузке страницы область кода будет свернута. Для того, чтобы развернуть ее, нужно будет кликнуть по ней. Это полезно для больших фрагментов кода. По умолчанию задано значение false.
  • firstline (номер) — Определяет, с какого числа начинается нумерация строк. Значение по умолчанию: 1.
  • gutter (true/false) — Если задано значение false, номера строк будут скрыты. Значение по умолчанию: true.
  • highlight (номера, разделенные запятыми) — Номера строк, которые будут выделены, например, «4,7,19».
  • hmtlscript (true/false) — Если задано значение true, выполняется подсветка HTML/XML-кода. Это полезно при публикации смешанного кода, например, PHP внутри HTML. Работает только с некоторыми языками. Значение по умолчанию: false.
  • light (true/false) — Если задано значение true, номера строк и панель инструментов будут скрыты. Это полезно при размещении фрагмента кода из одной-двух строк. Значение по умолчанию: false.
  • padlinenumbers (true/false/целое число) — Позволяет контролировать дополнение номеров строк нулями. Значение true задает автодополнение, значение false отключает дополнение, число задает фиксированное количество знаков для номеров строк.
  • toolbar (true/false) — Если задано значение false, при наведении на код не будет появляться панель инструментов с кнопками. Значение по умолчанию: true.
  • wraplines (true/false) — Если задано значение false, будет отключен перенос строк. При наличии длинных строк появится горизонтальная полоса прокрутки.
  • title (строка) – заголовок для кода. Может быть полезным в сочетании с параметром collapse .

Примеры использования вышеописанных параметров:

Эта строка не выделена. Эта строка выделена. Эта строка выделена. Эта строка не выделена. Это короткий фрагмент кода с дополнением номеров строк нулями до 4 знаков. //В этом примере отключен перенос строк. Чтобы прочитать текст полностью, вам придется воспользоваться полосой прокрутки. Кроме того, в данном примере отключена нумерация строк и спрятана панель инструментов.

А это фрагмент кода побольше. Здесь выбран язык PHP и выделена строка номер 12.

WordPress.com Code Example

WordPress.com Code Example

Эта строка выделена. Очень-очень-очень-очень-очень-очень-очень-очень-очень-очень-очень-очень-очень-очень-очень-очень-очень-очень-очень-очень-очень-очень-очень-очень-очень длинная строка.
This is an example of smart tabs.
WordPress.com

Благодарности
Для реализации данной возможности используется проект SyntaxHighlighter (автор Alex Gorbatchev) . Пользователи могут установить соответствующий

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

Вы идете на «склад» плагинов для wordpress и обнаруживаете, что необходимого плагина для Вас нету. Что же делать? Как быть? Если вы хотя бы немного знакомы с азами программирования на php, верстке, то Вам не составит труда Самому написать плагин для WordPress .

А теперь отправимся на «кухню» для приготовления нашего плагина.

P.s. Если знаний в php и верстке нету… не расстраивайтесь, попросите кого-либо написать Вам нужный функционал 🙂

Прежде чем начать писать плагин необходимо обратится в документацию WordPress где описаны основные принципы написания плагинов и некоторые примеры кода.

Я не буду дублировать эту информацию, а сразу перейду непосредственно к написанию кода.

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

Первое, что мы сделаем, это придумаем уникальное название нашему плагину - «AdvUserReviews «.

Далее создадим в директории Вашего сайта «/wp-content/plugins/» новую директорию «advuserreviews». И в ней создадим файл «advuserreviews.php». Это будет основной файл, который будет отвечать за общею инициализацию. (Желательно используйте кодировку для файлов UTF-8).

В самом начале файла необходимо указать основную информацию о плагине

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

Наш новый плагин мы будем писать в стиле ООП и вся обработка данных будет находится в одном файле. Создадим основной каркас файла.

// Stop direct call if(preg_match("#" . basename(__FILE__) . "#", $_SERVER["PHP_SELF"])) { die("You are not allowed to call this page directly."); } if (!class_exists("AdvUserReviews")) { class AdvUserReviews { // Хранение внутренних данных public $data = array(); // Конструктор объекта // Инициализация основных переменных function AdvUserReviews() { } } } global $rprice; $rprice = new AdvUserReviews();

Теперь конструктор объекта дополним следующим кодом:

Function AdvUserReviews() { global $wpdb; // Объявляем константу инициализации нашего плагина DEFINE("AdvUserReviews", true); // Название файла нашего плагина $this->plugin_name = plugin_basename(__FILE__); // URL адрес для нашего плагина $this->plugin_url = trailingslashit(WP_PLUGIN_URL."/".dirname(plugin_basename(__FILE__))); // Таблица для хранения наших отзывов // обязательно должна быть глобально объявлена перменная $wpdb $this->tbl_adv_reviews = $wpdb->prefix . "adv_reviews"; // Функция которая исполняется при активации плагина register_activation_hook($this->plugin_name, array(&$this, "activate")); // Функция которая исполняется при деактивации плагина register_deactivation_hook($this->plugin_name, array(&$this, "deactivate")); // Функция которая исполняется удалении плагина register_uninstall_hook($this->plugin_name, array(&$this, "uninstall")); }

В конструкторе объекта мы используем 3 «хука» или «зацепки» (что это?): register_activation_hook , register_deactivation_hook и register_uninstall_hook - это функции, которые выполняются при активации, деактивации плагина и его удаления соответственно.

Теперь непосредственно реализуем эти функции.

/** * Активация плагина */ function activate() { global $wpdb; require_once(ABSPATH . "wp-admin/upgrade-functions.php"); $table = $this->tbl_adv_reviews; // Определение версии mysql if (version_compare(mysql_get_server_info(), "4.1.0", ">=")) { if (! empty($wpdb->charset)) $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset"; if (! empty($wpdb->collate)) $charset_collate .= " COLLATE $wpdb->collate"; } // Структура нашей таблицы для отзывов $sql_table_adv_reviews = " CREATE TABLE `".$wpdb->prefix."adv_reviews` (`ID` INT(10) UNSIGNED NULL AUTO_INCREMENT, `review_title` VARCHAR(255) NOT NULL DEFAULT "0", `review_text` TEXT NOT NULL, `review_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `review_user_name` VARCHAR(200) NULL, `review_user_email` VARCHAR(200) NULL, PRIMARY KEY (`ID`))".$charset_collate.";"; // Проверка на существование таблицы if ($wpdb->get_var("show tables like "".$table.""") != $table) { dbDelta($sql_table_adv_reviews); } } /** * Деактивация плагина */ function deactivate() { return true; } /** * Удаление плагина */ function uninstall() { global $wpdb; $wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}adv_reviews"); }

Переменная $wpdb отвечает за запросы к базе Данных. Функция dbDelta анализирует текущую структуру таблицы, сравнивает ee с желаемой структурой таблицы, и либо добавляет или изменяет таблицу по мере необходимости.

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

Основная структура нового плагина готова. Теперь необходимо приступить к написанию функциональной части. Для этого в конструктор класса нам необходимо добавить следующие строчки кода:

// Если мы в адм. интерфейсе if (is_admin()) { // Добавляем стили и скрипты add_action("wp_print_scripts", array(&$this, "admin_load_scripts")); add_action("wp_print_styles", array(&$this, "admin_load_styles")); // Добавляем меню для плагина add_action("admin_menu", array(&$this, "admin_generate_menu")); } else { // Добавляем стили и скрипты add_action("wp_print_scripts", array(&$this, "site_load_scripts")); add_action("wp_print_styles", array(&$this, "site_load_styles")); add_shortcode("show_reviews", array (&$this, "site_show_reviews")); }

Разберем подробнее данный участок кода. Начнем с панели администрирования.
Функция «is_admin » проверяет в каком режиме сейчас мы работаем - на сайте или в панель управления.
Далее используется несколько хуков, для функций:

  • wp_print_scripts - Добавляем необходимые javascript файлы
  • wp_print_styles - Добавляем необходимые стили
  • admin_menu - Добавляем новое меню в панели управления

Каждому хуку соответствует реализованный метод в нашем классе. В котором выполняются необходимые операции.
Рассмотрим код для подключения стилей и скриптов

/** * Загрузка необходимых скриптов для страницы управления * в панели администрирования */ function admin_load_scripts() { // Регистрируем скрипты wp_register_script("advReviewsAdminJs", $this->plugin_url . "js/admin-scripts.js"); wp_register_script("jquery", $this->plugin_url . "js/jquery-1.4.2.min.js"); // Добавляем скрипты на страницу wp_enqueue_script("advReviewsAdminJs"); wp_enqueue_script("jquery"); } /** * Загрузка необходимых стилей для страницы управления * в панели администрирования */ function admin_load_styles() { // Регистрируем стили wp_register_style("advReviewsAdminCss", $this->plugin_url . "css/admin-style.css"); // Добавляем стили wp_enqueue_style("advReviewsAdminCss"); }

Здесь используются следующие функции.

Каждое действие зависит от переданного параметра «action», соответственно «edit» -редактирование отзыва, «submit» - сохранение отредактированного отзыва и «delete» - удаление отзыва.

Обмен данными со страницами отображения происходит через свойство объекта «data». Исходный код этих страниц будет выложен в архиве с данным модулем в конце статьи. Тут я их не буду вставлять, так как топик уже оказался достаточно большим.

На этом с панелью администрирования заканчиваем и переходит к отображению и добавлению отзывов со стороны пользователей.

Что бы указать wordpress, когда вызывать наш плагин, необходимо зарегистрировать «shortcode», что и было сделано в конструкторе нашего класса. Подробнее об этом .

Add_shortcode("show_reviews", array (&$this, "site_show_reviews"));

Теперь на любой странице сайта можно разместить вот такой код и это заставит выполнить указанную нами функцию (передается вторым параметром). Ниже представлен исходный код данной функции.

/** * Список отзывов на сайте */ public function site_show_reviews($atts, $content=null) { global $wpdb; if (isset($_POST["action"]) && $_POST["action"] == "add-review") { $this->add_user_review(); } // Выбираем все отзывы из Базы Данных $this->data["reviews"] = $wpdb->get_results("SELECT * FROM `" . $this->tbl_adv_reviews . "`", ARRAY_A); ## Включаем буферизацию вывода ob_start (); include_once("site_reviews.php"); ## Получаем данные $output = ob_get_contents (); ## Отключаем буферизацию ob_end_clean (); return $output; } private function add_user_review() { global $wpdb; $inputData = array("review_title" => strip_tags($_POST["review_title"]), "review_text" => strip_tags($_POST["review_text"]), "review_user_name" => strip_tags($_POST["review_user_name"]), "review_user_email" => strip_tags($_POST["review_user_email"]),); // Добавляем новый отзыв на сайт $wpdb->insert($this->tbl_adv_reviews, $inputData); }

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

Вот собственно и все. Теперь можно посмотреть, что у нас получилось. А скачать плагин и исходные коды можно вот .

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

Форма на сайте:

Панель управления плагином:

Редактирование отзыва:

Возможно также вам будет интересно:


Лучшие статьи по теме