Intereting Posts
Как сделать поиск только для поиска в сообщении? Сортировка сообщений по нескольким значениям мета-ключа wp_create_nonce () в REST API делает user-> ID zero Пользовательские поля метабокса не сохраняются при ограничении определенной CPT Как WordPress обращается к своей собственной базе данных Функция get_option Отменить сообщение сохранить Как сделать страницы slug имеют приоритет над любыми другими таксономиями, такими как персонализированные сообщения, почта или категория Является ли встроенный обновитель «лучшим» способом обновления установок WP? get_comments () возвращает пустой массив, если он вызван через AJAX Проверка категории WordPress Как импортировать переменную версию продукта с использованием функции импорта Woocomerce по умолчанию? Создание текстового текста, например, кнопки отправки на странице администратора Пользовательский временной диапазон для фильтра posts_where URL и миниатюра WordPress «Следующее сообщение»

Пользовательская структура постоянной ссылки для удаленных страниц контента

Я пытаюсь создать сайт WordPress, который интегрируется с очень специфическим CRM на удаленном сервере. CRM содержит несколько записей, которые должны отображаться на сайте, но, если возможно, я бы хотел избежать экспорта и импорта в WordPress.

Вместо этого сайт WordPress должен иметь возможность настраивать постоянную ссылку, например:

http://mysite.com/property/4573

А затем извлеките запись с ID 4573 с удаленного сервера. Теперь поиск непосредственно прост, но как насчет пользовательской постоянной ссылки?

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

¿Как создать такую ​​структуру константной ссылки и заставить WordPress обнаружить это в шаблоне темы?

Solutions Collecting From Web of "Пользовательская структура постоянной ссылки для удаленных страниц контента"

Я думаю, ваша проблема имеет несколько решений. Если вы не хотите иметь одну запись в базе данных WP для каждого удаленного элемента, возможным решением может быть наличие страницы с пулом property и добавление правила перезаписи для получения идентификационного номера:

 add_action( 'init', 'cyb_property_rewrite_rule' ); function cyb_property_rewrite_rule() { add_rewrite_rule( '^property/([0-9]{1,})/?$', 'index.php?pagename=$matches[1]&remote_ID=$matches[2]', 'top' ); } //Add remote_ID to vars pool to be recognized by WordPress add_filter('query_vars', 'cyb_add_query_vars'); function cyb_add_query_vars( $vars) { $vars[] = "remote_ID"; return $vars; } 

Теперь идентификатор элемента, который вы хотите получить, хранится в запросе remote_ID который вы можете получить через get_query_var :

 $item_ID = get_query_var('remote_ID'); 

Вы можете создать шаблон страницы для этой страницы, и в контенте вы получите удаленный элемент:

 <?php /* Template Name: Property Page Template */ get_header(); ?> <div id="content"> <?php $remote_item = cyb_get_the_property(); ?> </div> <?php get_footer(); ?> 

И в cyb_get_the_property() вы можете получить данные:

 function cyb_get_the_property() { $item_ID = get_query_var('remote_ID'); //Itegrate with the remote CMR API $item_data = ''; return $item_data; } 

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

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