有一种方法可以通过内部WordPress重写实现这一点,然后设置一个查询变量,您可以在javascript排队时检查该变量,并通过localize script.
所以首先,重写规则以拦截gallery/
添加内容后,加载名为gallery
, 并设置查询变量gallery_id
指向URL中的任何内容。此外,我们还添加了gallery_id
查询var,以便WordPress了解它。确保在添加重写后访问permalinks设置页面,以刷新规则和此新规则。
function wpa_gallery_rewrite(){
add_rewrite_rule(
\'gallery/([^/]+)/?$\',
\'index.php?pagename=gallery&gallery_id=$matches[1]\',
\'top\'
);
}
add_action( \'init\', \'wpa_gallery_rewrite\' );
function wpa_gallery_query_var( $query_vars ){
$query_vars[] = \'gallery_id\';
return $query_vars;
}
add_filter(\'query_vars\', \'wpa_gallery_query_var\');
现在,当我们将javascript排队时,我们可以检查该值并设置一个var,该var将与脚本一起添加并可用于脚本。
function wpa_scripts() {
wp_enqueue_script(
\'wpa_script\',
get_template_directory_uri() . \'/js/my_gallery.js\',
array(\'jquery\'),
null,
false
);
$default_photo = ( get_query_var( \'gallery_id\' ) ) ? get_query_var( \'gallery_id\' ) : 0;
wp_localize_script(
\'wpa_script\',
\'wpa_data\',
array(
\'default_photo\' => $default_photo
)
);
}
add_action( \'wp_enqueue_scripts\', \'wpa_scripts\', 100 );
现在在javascript中,检查
wpa_data.default_photo
查看它是否等于0,或者是否请求了特定的照片。