Категории
Уведомление:подпишитесь Заходите к нам в Telegram-чат

WP Router

SaNcHeS
Опубликовано 7-08-2021, 18:11
Правила перезаписи и переменные запроса WordPress предоставляют мощную систему для сопоставления строк URL-адресов с коллекциями сообщений. Каждый запрос анализируется на переменные запроса и превращается в запрос SQL с помощью $ wp_query-> query (). Однако иногда вы не хотите отображать список сообщений. Вам просто нужно, чтобы URL-адрес отображался в функции обратного вызова, а вывод отображался вместо сообщений в любой теме, которую вы используете. Вот где приходит WP Router. Он обрабатывает все беспорядочные биты регистрации типов сообщений, переменных запросов, правил перезаписи и т. Д. И позволяет вам писать код, чтобы делать то, что вы хотите. Один вызов функции - это все, что требуется для сопоставления URL-адреса с назначенной функцией обратного вызова и отображения возвращаемого значения на странице. Создано с помощью Flightless Usage Создание маршрутов Ваш плагин должен подключаться к действию wp_router_generate_routes. Обратный вызов должен принимать один аргумент - объект WP_Router. Зарегистрируйте маршрут и его обратный вызов с помощью WP_Router :: add_route ($ id, $ args) $ id - это уникальная строка, которую ваш плагин должен использовать для идентификации маршрута. $ Args - это ассоциативный массив, который устанавливает следующие свойства для вашего маршрута. Любой пропущенный аргумент будет использовать значение по умолчанию. path (обязательно) - регулярное выражение для сопоставления с путем запроса. Это соответствует ключу массива, который вы использовали бы при создании правил перезаписи для WordPress. query_vars - ассоциативный массив, ключи которого являются переменными запроса, а значения - явными строками или целыми числами, соответствующими совпадениям в регулярном выражении пути. Все включенные здесь переменные запроса будут автоматически зарегистрированы. title - Заголовок страницы. title_callback - обратный вызов, используемый для динамического создания заголовка. По умолчанию __ (). Если NULL, аргумент заголовка будет использоваться как есть. если page_callback или access_callback возвращает FALSE, title_callback не вызывается. title_callback может быть либо отдельной функцией обратного вызова, либо массивом, определяющим функции обратного вызова для определенных методов HTTP (например, GET, POST, PUT, DELETE и т. д.). В последнем случае будет использоваться ключ по умолчанию, если никакие другие ключи не соответствуют текущему методу запроса. title_arguments - массив переменных запроса, значения которых будут переданы в качестве аргументов в title_callback. По умолчанию значение заголовка. Если аргумент не является зарегистрированной переменной запроса, он будет передан как есть. page_callback (обязательно) - обратный вызов для использования для динамической генерации содержимого страницы. Обратный вызов должен либо отображать, либо возвращать содержимое страницы (в обоих случаях возвращаемое значение будет добавлено к отображаемому значению). Если возвращается FALSE, ничего не выводится, а контроль над содержимым страницы будет возвращен WordPress. Обратный вызов будет вызываться во время фазы parse_request загрузки страницы WordPress. Если access_callback возвращает FALSE, page_callback не вызывается. page_callback может быть либо отдельной функцией обратного вызова, либо массивом, определяющим функции обратного вызова для определенных методов HTTP (например, GET, POST, PUT, DELETE и т. д.). В последнем случае будет использоваться ключ по умолчанию, если никакие другие ключи не соответствуют текущему методу запроса. page_arguments - массив переменных запроса, значения которых будут переданы в качестве аргументов в page_callback. Если аргумент не является зарегистрированной переменной запроса, он будет передан как есть. access_callback - обратный вызов, чтобы определить, есть ли у пользователя разрешение на доступ к этой странице. Если access_arguments предоставлен, значение по умолчанию - current_user_can, в противном случае - TRUE. Если обратный вызов возвращает FALSE, анонимные пользователи перенаправляются на страницу входа, аутентифицированные пользователи получают ошибку 403. access_callback может быть либо одной функцией обратного вызова, либо массивом, определяющим функции обратного вызова для определенных методов HTTP (например, GET, POST, PUT, DELETE и т. д.). В последнем случае будет использоваться ключ по умолчанию, если никакие другие ключи не соответствуют текущему методу запроса. access_arguments - массив переменных запроса, значения которых будут переданы в качестве аргументов функции access_callback. Если аргумент не является зарегистрированной переменной запроса, он будет передан как есть. template - массив шаблонов, которые можно использовать для отображения страницы. Если путь абсолютный, он будет использоваться как есть; относительные пути допускают переопределение темой. Строка $ id будет заменена идентификатором маршрута. Если шаблон не найден, используются резервные шаблоны (в этом порядке): route- $ id.php, route.php, page- $ id.php, page.php, index.php. Если вместо массива задано FALSE, содержимое страницы будет напечатано перед вызовом exit () (вы также можете сделать это, распечатав свой вывод и выйдя непосредственно из вашей функции обратного вызова). Пример: $ router-> add_route ('wp-router-sample', array ('path' => '^ wp_router /(.*?)$', 'query_vars' => array ('sample_argument' => 1,)) , 'page_callback' => array (get_class (), 'sample_callback'), 'page_arguments' => array ('sample_argument'), 'access_callback' => TRUE, 'title' => 'Пример страницы WP Router', 'шаблон '=> array (' sample-page.php ', dirname (FILE) .DIRECTORY_SEPARATOR.'sample-page.php'))); В этом примере путь http://example.com/wp_router/my_sample_path/ вызовет функцию sample_callback в вызывающем классе. Значение переменной запроса sample_argument, в данном случае my_sample_path, будет предоставлено как первый и единственный аргумент функции обратного вызова. Если файл sample-page.php найден в теме, он будет использоваться в качестве шаблона, в противном случае будет использоваться файл sample-page.php в каталоге вашего плагина (если он тоже не найден, вернитесь к route-wp-router -sample.php и т. д.). Редактирование маршрутов Вы можете подключиться к действию wp_router_alter_routes для изменения маршрутов, созданных другими плагинами. Обратный вызов должен принимать один аргумент - объект WP_Router. Функции общедоступного API Создание или изменение маршрутов всегда должно происходить в контексте действий wp_router_generate_routes или wp_router_alter_routes с использованием объекта WP_Router, предоставленного вашей функции обратного вызова. WP_Router :: edit_route (string $ id, array $ changes) - обновить каждое свойство, указанное в $ changes для маршрута с заданным идентификатором. Любые свойства, не указанные в $ changes, останутся без изменений. WP_Router :: remove_route (string $ id) - удалить маршрут с заданным ID WP_Router :: get_route (string $ id) - получить объект WP_Route для заданного ID WP_Router :: get_url (string $ id, array $ arguments) - получить URL для достижения маршрута с заданным идентификатором, с заданными переменными запроса и их значениями WP_Route :: get (string $ property) - получить значение указанного свойства для экземпляра WP_Route

Автор: Flightless

Версия: 0.5

Последнее обновление: 2012-08-06 3:06pm GMT

Понравилось?
0
0
0

Скачать WP Router:

wp-router.zip Размер файла: 12.73 Kb
430
0