WP: показ продуктов из другой БД с использованием постоянных ссылок WP и PageTemplate?
Хотел бы получить вашу помощь с этим.
Моя ситуация с IS: у меня есть пользователи, которые создают свой собственный продукт. Допустим, это наряд с галстуком, рубашкой и туфлей. Я разрешаю им сохранить этот наряд. Мой сценарий сохраняет изображение и некоторую дополнительную информацию об оборудовании в базе данных, которая не связана с WordPress. В моей БД каждый наряд имеет свой уникальный идентификатор. У этого также есть имя.
Моя ситуация " Быть" : во- первых, я хочу, чтобы имя и идентификатор в этом наряде были вставлены в URL.
Так что я, пользователь, смогу ссылаться на его только что созданный наряд.
Желаемая схема URL:
http://www.mydomain.com/outfits/funky-shirt-blue-tie-outfit/o12345
или же:
http://www.mydomain.com/outfits/{%outfitTitle%}/o{%outfitID%}
Во-вторых, я хочу использовать страницу WordPress или пост-шаблоны для отображения картинки одежды.
Моя проблема: - Я не хочу создавать страницу / пост для каждого наряда.
- Каждый наряд не сохраняется как страница или пост в базе данных WordPress.
Что я нашел до сих пор: я нашел инструмент переписывания модов http://www.generateit.net/mod-rewrite/
Я прочитал эти документы http://codex.wordpress.org/Function_Reference/register_post_type
и http://codex.wordpress.org/Template_Hierarchy но никуда не денутся.
Кто-нибудь, кто может мне помочь?
1 ответ
Вам придется иметь дело с пользовательскими правилами перезаписи и пользовательскими запросами. В противном случае это просто.
Прежде всего, создайте пользовательский шаблон страницы. Это просто, как создание php-файла, который включает, по крайней мере, этот код:
<?php /* Template Name: Outfit */ ?>
Затем вы можете создать страницу в своем администраторе WP и назначить ей свой новый шаблон страницы. Обратите внимание на этот идентификатор страницы. Вам это понадобится позже!
Теперь давайте зарегистрируем пользовательские правила перезаписи. Чтобы зарегистрировать пользовательские правила перезаписи, вам нужно добавить этот код в ваши functions.php
add_action( 'generate_rewrite_rules', 'outfit_rewrite_rules' );
function outfit_rewrite_rules( $wp_rewrite )
{
$outfit_page_id = 3; //get ID of your page with custom template for displaying outfit
$wp_rewrite->rules = array(
'outfit/?([a-zA-Z0-9]{1,})/?([0-9]{1,})/?$' => $wp_rewrite->index . '?page_id='. $outfit_page_id .'&outfit_ename=' . $wp_rewrite->preg_index( 1 ) . '&outfit_id=' . $wp_rewrite->preg_index( 2 ),
) + $wp_rewrite->rules;
}
Этот код перезапишет весь трафик, содержащий наряд в URL, на вашу пользовательскую страницу, созданную на шаге 1, с пользовательским шаблоном страницы и будет включать "outfit_name" и "outfit_id" в -URL. Но чтобы получить доступ к этим переменным, вы должны зарегистрировать пользовательские переменные запросов. С помощью этого кода, снова в functions.php вашего шаблона
add_filter( 'query_vars', 'outfit_query_vars' );
function outfit_query_vars( $vars ) {
$vars[] = 'outfit_name';
$vars[] = 'outfit_id';
return $vars;
}
Затем вы сможете принять их в свой шаблон страницы с помощью этого кода:
$outfit_id = get_query_var('outfit_id');
$outfit_name = get_query_var('outfit_name');
Чем легко подключиться к вашей БД и получить нужные записи, не так ли? Ваш PHP-код для ввода БД будет в вашем шаблоне страницы экипировки - после открытия комментария.