Cách để xem các quy luật rule lấy giá trị như thế nào add_rewrite_rule, $wp_rewrite, $wp_query->quer
https://app.gitbook.com/o/-LWPtKFTTwWPPDkKZO5o/s/-LWPtKFbhw0XehxVuoiZ/su-dung-add_rewrite_rule-de-viet-lai-duong-dan-phan-2-ok
// ===========
add_action('init', 'my_book_cpt');
function my_book_cpt() {
$labels = array(
'name' => _x('Books', 'post type general name', 'your-plugin-textdomain'),
'singular_name' => _x('Book', 'post type singular name', 'your-plugin-textdomain'),
'menu_name' => _x('Books', 'admin menu', 'your-plugin-textdomain'),
'name_admin_bar' => _x('Book', 'add new on admin bar', 'your-plugin-textdomain'),
'add_new' => _x('Add New', 'book', 'your-plugin-textdomain'),
'add_new_item' => __('Add New Book', 'your-plugin-textdomain'),
'new_item' => __('New Book', 'your-plugin-textdomain'),
'edit_item' => __('Edit Book', 'your-plugin-textdomain'),
'view_item' => __('View Book', 'your-plugin-textdomain'),
'all_items' => __('All Books', 'your-plugin-textdomain'),
'search_items' => __('Search Books', 'your-plugin-textdomain'),
'parent_item_colon' => __('Parent Books:', 'your-plugin-textdomain'),
'not_found' => __('No books found.', 'your-plugin-textdomain'),
'not_found_in_trash' => __('No books found in Trash.', 'your-plugin-textdomain'),
);
$args = array(
'labels' => $labels,
'description' => __('Description.', 'your-plugin-textdomain'),
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'has_archive' => false,
// 'rewrite' => array('slug' => 'book','with_front'=>false),
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => null,
'show_in_rest' => true,
'rest_base' => 'book',
'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments'),
);
register_post_type('book', $args);
flush_rewrite_rules(true);
}
// ===========
add_action('init', 'my_book_taxonomy', 30);
function my_book_taxonomy() {
$labels = array(
'name' => _x('Genres', 'taxonomy general name'),
'singular_name' => _x('Genre', 'taxonomy singular name'),
'search_items' => __('Search Genres'),
'all_items' => __('All Genres'),
'parent_item' => __('Parent Genre'),
'parent_item_colon' => __('Parent Genre:'),
'edit_item' => __('Edit Genre'),
'update_item' => __('Update Genre'),
'add_new_item' => __('Add New Genre'),
'new_item_name' => __('New Genre Name'),
'menu_name' => __('Genre'),
);
$args = array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array('slug' => 'genre'),
'show_in_rest' => true,
'rest_base' => 'genre',
);
register_taxonomy('genre', array('book'), $args);
flush_rewrite_rules(true);
}
// ====
add_action( 'init', 'pmg_rewrite_add_rewrites' );
function pmg_rewrite_add_rewrites() {
add_rewrite_rule( 'myparamname/([a-z0-9-]+)[/]?$', 'index.php?myparamname=$matches[1]', 'top' );
}
add_filter( 'query_vars', function( $query_vars ) {
$query_vars[] = 'myparamname';
echo '<pre>';
var_export($query_vars);
echo '</pre>';
return $query_vars;
}
);
add_action( 'template_include', function( $template ) {
global $wp_rewrite;
echo '<pre>';
var_export($wp_rewrite);
echo '</pre>';
var_export(get_query_var( 'book'));
if ( get_query_var( 'myparamname' ) == false || get_query_var( 'myparamname' ) == '' ) {
return $template;
}
include get_template_directory() . '/template-name.php';
} );Ví dụ 2:



C:\xampp\htdocs\test1\wp-content\themes\twentytwentyone\functions.php
C:\xampp\htdocs\test1\wp-content\themes\twentytwentyone\header.php
Ví dụ 3: Using Custom Templates with custom querystring
Xem thêm tại:
https://developer.wordpress.org/reference/functions/add_rewrite_rule/
Ví dụ 2: Một ví dụ viết lại đường dẫn subpage id = 2 và lấy giá trị truyền vào dạng ?avaiable1=abac1&avaiable2=ab

Last updated
Was this helpful?