Intereting Posts
Многопользовательский конфликт WordPress Совокупные резюме сообщений разных блогов в многоуровневом экземпляре Как я могу показать содержимое только нескольких пользователей Отладочная техника Вопрос re: functions.php woocommerce панихиды в теме Первичная публикация, не работающая с wp_redirect с ошибкой «невозможно изменить информацию заголовка» Как отключить или скрыть «меню свернуть» Можно ли заказать несколько мета-ключей при использовании meta_value_num? URL Rewrite – Страница архива Авто-сообщения Спам на моем блоге WordPress? Загрузите url с минимальными / отсутствующими запросами DB отправлять сообщения незарегистрированными пользователями в wordpress Как сделать плагин обязательным в теме wp без использования условных операторов php при вызове отдельной функции из этого плагина? цветной выбор радужки в событии виджета – не срабатывает, когда первоначально, когда виджет сначала создается Удалить "? Repeat = w3tc" из любого URL-адреса

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

Я пытаюсь создать сайт 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 не попытался бы получить запись с локальным идентификатором в качестве идентификатора удаленной страницы (что было бы неправильно).