Intereting Posts
почему так много сообщений whoes post_type – это ревизия? будут ли эти записи слишком много места для базы данных? add_editor_style не загружается в frontend. Любое решение? Удалите все классы навигационного меню (но сохраните полезные …) Почему $ wpdb возвращает строки для значений mysql integer? Как отключить кнопку публикации при редактировании сообщения, если существует заголовок сообщения Используются ли функции короткого кода при рендеринге контента, или они выполняются и сохраняются с содержимым сообщения? Вызов содержимого страницы в AJAX в WordPress Пользовательская тема: как вызвать archive-post.php для просмотра сообщений в блоге Paged Single Post не перенаправляет на основной URL-адрес после удаления разбивки на страницы Отображение всех тегов в admin -> edit post Как запустить PHP-программу, отличную от WordPress, на сайте WordPress? Ограничить тип файла и wp-файлы Пользовательский тип сообщения – портфолио больше не работает Фильтр comments_array не работает в некоторых темах Иерархия шаблонов: как разрешить category.php условно-load archive.php?

Архитектура плагина, чтобы вытащить из 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», чтобы вставить его в базу данных. Это означает, что вы можете иметь конфигурацию плагина, которая позволяет вам настраивать определенные пользовательские страницы, или вы можете использовать страницу с коротким кодом для активации правил перезаписи для будущих посещений этой страницы.