Intereting Posts
Как предотвратить «внутреннюю ошибку сервера 500» из-за длительного процесса установки? два мета-тега со всеми в одном seo Как обновить ядро ​​WordPress или темы и по-прежнему работать с моими дочерними темами Как правильно изменить шаблон плагина (view)? Являются ли почтовые идентификаторы надежными? Отобразить URL-адрес аудиовхода Есть ли способ исключить должности на основе meta_values? cat_is_ancestor_of () для пользовательских таксономий Различия в конвертации изображений WP Ubuntu / Mac Динамические боковые панели и эхо Страница пользовательских настроек типа публикации, выберите страницу для отображения архива Архив для пользовательской таксономии перечисляет все сообщения вместо текущей таксономии Тема Wp не работает хорошо, как забыл создать дочернюю тему Как получить $ tag для добавления в add_action () или add_filter ()? Таксономии по URL-адресу

Архитектура плагина, чтобы вытащить из API и создать динамический контент на сайте WP?

Я создаю настраиваемый плагин, который подключается к внешнему API и извлекает данные о местонахождении компании. В настоящее время плагин имеет короткий код, который я разместил на странице «Местоположения» WordPress, в которой перечислены все местоположения.

По сути, я просто нажимаю API, отбрасывая данные, генерируя некоторый HTML и возвращаю его в короткий код. Это отлично подходит для страницы местоположений (/ местоположений), так как у нее есть заголовок страницы WordPress и копия над списком. Но для страницы подробностей местоположений мне нужен «пустой» холст.

Я попытался использовать add_rewrite_rule () для создания страницы подробностей и отправки дополнительных запросов в URL через сегменты URL. Это работает, но отправка правила перезаписи на страницу wordpress означает, что заголовок страницы и контент все еще отображаются.

Как я должен архивировать этот плагин, чтобы я мог ссылаться на URL-адрес, т.е. / locations / address / id, который на самом деле не существует в WP, а просто строит динамически. Мы хотели бы, чтобы это использовало «страницу» или «сообщение», если это возможно, но обманите WordPress в использовании нашего заголовка страницы и содержимого HTML.

Есть предположения?

Solutions Collecting From Web of "Архитектура плагина, чтобы вытащить из API и создать динамический контент на сайте WP?"

Вы должны использовать фильтры wp_title и the_title если это необходимо, чтобы изменить это. Содержание? Ну, вы можете повторно использовать контент и поместить the_content после, или the_content может в противном случае изменить the_content

Недавно я столкнулся с этой проблемой.

Я бы порекомендовал добавить крюк как можно раньше, чтобы распознать пользовательские запросы страницы, например:

 // Function to run before page generation begins add_action('init',array('MyPluginClass','MyInitPublicFunction')); 

Тогда эта функция должна выглядеть примерно так:

 public function MyInitPublicFunction() { // Custom tag we will be using to recognize page requests add_rewrite_tag('%mycustomtag%','([^/]+)'); // Custom rewrite rule to hijack page generation add_rewrite_rule('locations/address/([^/]+)/?$','index.php?mycustomtag=$matches[1]','top'); // Update WP rewrite rules without writing a new .htaccess file flush_rewrite_rules(false); } 

Затем в вашем плагине:

 // Allow access to WordPress query variables global $wp_query; // Retrieve WordPress query variables $query_vars = $wp_query->query_vars; // Check if requesting our custom page if(!empty($query_vars['mycustomtag'])) { // CUSTOM PAGE REQUESTED! $custom_id = $query_vars['mycustomtag']; die('<html><head><title>Not a WordPress Page</title></head><body>Content here</body></html>'); } 

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

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