Приветствую всех!
Поговорим немного о WordPress. Темой этого поста будут хуки (hooks). При разработке плагина я использовала многие языки и технологии, такие как MySQL, AJAX, JavaScript, Bootstrap, ну и конечно же PHP. Знание HTML и CSS является, конечно-же, обязательным, хотя-бы, основ. Скоро будет цикл статей, и я постаралась собрать те хуки, по которым сложно найти информацию на русскоязычных ресурсах, а есть хуки и экшены, по которым почти нет информации в сети вообще. Местами могу повторять некоторые ресурсы, за что заранее приношу извинения. Буду также рассказывать о очень распостраненных хуках, которые надо обязательно знать при написании плагина.
Что такое хуки? На первый взгляд, когда я начала изучать WordPress, они мне казались загадочными и странными, их казалось слишком много (их действительно ОЧЕНЬ много), но в работе, как оказалось, нужно не так много. При определенной сноровке, поиск нужных хуков становится довольно простой задачей. Но давайте сначала разберемся, зачем это нужно.
Hook в прямом переводе с английского означает "крючок", т.е. зацепка. Слово отлично отображает смысл этого явления, так как хуки - это пользовательские функции, которые привязаны к определенным функциям WordPress. Все сайты WordPress состоят из определенных функций, в которые можно внести изменения, либо переписать их. Напрямую код сайта менять нельзя. Хуки можно внести только в файл functions.php, либо в свой плагин.
Привязка хука может быть двух типов: выполнение пользовательской функции(после выполнения основной функции WordPress) – фильтр, и выполнение пользовательской функции взамен стандартной функции WordPress – действие.
Поговорим немного о WordPress. Темой этого поста будут хуки (hooks). При разработке плагина я использовала многие языки и технологии, такие как MySQL, AJAX, JavaScript, Bootstrap, ну и конечно же PHP. Знание HTML и CSS является, конечно-же, обязательным, хотя-бы, основ. Скоро будет цикл статей, и я постаралась собрать те хуки, по которым сложно найти информацию на русскоязычных ресурсах, а есть хуки и экшены, по которым почти нет информации в сети вообще. Местами могу повторять некоторые ресурсы, за что заранее приношу извинения. Буду также рассказывать о очень распостраненных хуках, которые надо обязательно знать при написании плагина.
Что такое хуки? На первый взгляд, когда я начала изучать WordPress, они мне казались загадочными и странными, их казалось слишком много (их действительно ОЧЕНЬ много), но в работе, как оказалось, нужно не так много. При определенной сноровке, поиск нужных хуков становится довольно простой задачей. Но давайте сначала разберемся, зачем это нужно.
Hook в прямом переводе с английского означает "крючок", т.е. зацепка. Слово отлично отображает смысл этого явления, так как хуки - это пользовательские функции, которые привязаны к определенным функциям WordPress. Все сайты WordPress состоят из определенных функций, в которые можно внести изменения, либо переписать их. Напрямую код сайта менять нельзя. Хуки можно внести только в файл functions.php, либо в свой плагин.
Привязка хука может быть двух типов: выполнение пользовательской функции(после выполнения основной функции WordPress) – фильтр, и выполнение пользовательской функции взамен стандартной функции WordPress – действие.
Для тех, кто привык к программистской терминологии - вот еще одно определение: хук - это перегрузка функций WordPress.
Итак, начнем с простого, как добавить плагин в админ меню, и как сделать подстраницы меню плагина?
Для этого существует хук admin_menu. В первой строке мы объявляем о том, что хотим создать хук (add_action), admin_menu - сам хук, к которому происходит зацепка, my_plugin_menu - название нашей функции в которой непосредственно мы пишем то, что хотим добавить, эту часть мы можем назвать как угодно на самом деле, т.к. это наша личная функция, но советую наполнить название смыслом.
в 3 строке начинается сама функция. в 5 строке мы используем функцию wordpress add_menu_page, в 6 - add_submenu. При правильном указании аргументов у вас в панели должно получиться нечто такое:
Для этого существует хук admin_menu. В первой строке мы объявляем о том, что хотим создать хук (add_action), admin_menu - сам хук, к которому происходит зацепка, my_plugin_menu - название нашей функции в которой непосредственно мы пишем то, что хотим добавить, эту часть мы можем назвать как угодно на самом деле, т.к. это наша личная функция, но советую наполнить название смыслом.
в 3 строке начинается сама функция. в 5 строке мы используем функцию wordpress add_menu_page, в 6 - add_submenu. При правильном указании аргументов у вас в панели должно получиться нечто такое:
Давайте разберемся с аргументами.
add_menu_page(заголовок страницы, название пункта меню, уровень доступа(можно оставить его 8), расположение файла на который будет перенаправление при нажатии на этот пункт меню, иконка(необязательно), позиция в меню(номер строки))
add_submenu_page(расположение файла на который идет перенаправление при нажатии на главный пункт меню, заголовок страницы, название пункта подменю, уровень доступа, расположение страницы в которой будет располагаться код данного подпункта меню)
- add_action( 'admin_menu', 'my_plugin_menu');
- function my_plugin_menu()
- {
- add_menu_page( 'My Plugin Options', 'User Plans', 8, PRICE_PLUGIN_DIR.'notifications.php', '', 'dashicons-groups', 6);
- add_submenu_page( PRICE_PLUGIN_DIR.'notifications.php', 'Notifications', 'Notifications', 8, PRICE_PLUGIN_DIR.'notifications.php' );
- add_submenu_page( PRICE_PLUGIN_DIR.'notifications.php', 'Plans', 'Plans', 8, PRICE_PLUGIN_DIR.'plans.php' );
- }
Комментарии
Отправить комментарий