Вопрос в том, как создать маршрут, подобный экспрессу узла в WordPress.
/ gallery / {: id or: name}, которая переходит на страницу галереи
У меня сейчас есть проекты, страница галереи (оба используют шаблон)
/**
* Template Name: Gallery page
*
* @package WordPress
* @subpackage A Theme
* @since A Theme 1.0
*/
Создан пользовательский тип галереи, содержащий изображения и прикрепленный к проекту.
Заменено название темы на A
add_action( 'init', 'gallery_post_type' );
function gallery_post_type() {
register_post_type( 'gallery',
array(
'labels' => array(
'name' => __('Gallery Page - gallery', 'A'),
'singular_name' => __('Gallery', 'A'),
'add_new_item' => __('Add Gallery', 'A'),
'edit_item' => __('Edit Gallery', 'A'),
'new_item' => __('New Gallery', 'A'),
'view_item' => __('View Gallery', 'A'),
'search_items' => __('Search Gallery', 'A'),
'not_found' => __('No Gallery Found', 'A'),
'not_found_in_trash' => __('No Gallery found in Trash', 'A')
),
'description' => 'Gallery in the gallery page',
'hierarchical' => false,
'menu_icon' => 'dashicons-networking',
'menu_position' => 5,
'public' => true,
'show_in_admin_bar' => false,
'show_in_nav_menus' => true,
'show_ui' => true,
'supports' => array('title')
));
}
Когда пользователь щелкает ссылку из блока проекта, я хотел бы изменить маршрут к странице галереи.
Что-то вроде домена / галереи / имени проекта /
Но он продолжает показывать не найдено или ничего.
Единственный способ увидеть страницу галереи - это домен / галерея
Что я должен сделать, чтобы создать галерею / название проекта?
Страница галереи - Постоянная ссылка: http://wordpresslocal -clone.local / gallery / {: name} <- Могу ли я сделать что-то вроде этого, например, выражение узла </strong>
Сообщение в галерее - Постоянная ссылка: http://wordpresslocal -clone.local / gallery / test /
Я попробовал этот код в качестве комментария
add_action( 'init', 'wpse26388_rewrites_init' );
function wpse26388_rewrites_init(){
add_rewrite_rule(
'gallery/([a-zA-Z_0-9]+)/?$',
'index.php?pagename=gallery&project_name=$matches[1]',
'top' );
}
add_filter( 'query_vars', 'wpse26388_query_vars' );
function wpse26388_query_vars( $query_vars ){
var_dump($query_vars);
$query_vars[] = 'project_name';
return $query_vars;
}