Очистить URL в WordPress с помощью плагина галереи nextgen
Я использую плагин галереи NextGEN. В настоящее время я получаю id категории от mysite.com/photography?cat=weddings
В моем page.php я получаю категорию, которая находится в URL, и заполняю страницу на основе категории.
$cat = $_GET['cat'];
if($cat == 'portraits'){ $cat = 'where galleryid = 5'; }
if($cat == 'weddings'){ $cat = 'where galleryid = 3'; }
if($cat == 'outdoor'){ $cat = 'where galleryid = 4'; }
$q = $wpdb->get_results("
select filename, meta_data, galleryid, gal.name, pid
from wp_ngg_pictures as pic
join wp_ngg_gallery as gal on (gal.gid = pic.galleryid)
{$cat}
");
Я хочу просто сделать это /mysite.com/photography/weddings и не иметь строки запроса в URL. Я также предпочел бы не делать все это, если заявления, чтобы захватить удостоверение личности. Я не хочу, чтобы идентификатор был в URL, поэтому я хочу хороший читаемый URL.
У WordPress есть простой способ сделать это?
1 ответ
Добавьте это к вашему functions.php
чтобы добавить новое правило перезаписи:
function my_add_rewrites() {
global $wp_rewrite;
$wp_rewrite->add_rule('photography/([^/]+)/?', 'index.php?pagename=photography&photocat=$matches[1]', 'top');
}
add_action( 'init', 'my_add_rewrites' );
function my_query_vars( $query_vars ) {
$query_vars[] = 'photocat';
return $query_vars;
}
add_filter( 'query_vars', 'my_query_vars' );
Тогда в вашем page.php
, добавлять:
global $wp, $wpdb;
// Get the query var
$photocat = $wp->query_vars['photocat'];
// Get the gallery ID
$gid = $wpdb->get_var( "SELECT gid FROM $wpdb->ngg_gallery WHERE slug = '$photocat';" );
// Check if we have a valid value
$q = FALSE; // Set a default so you can check later
if( $gid !== NULL ) {
// Get the images -> could also use $nggdb->get_gallery($gid);
$q = $wpdb->get_results("
select filename, meta_data, galleryid, gal.name, pid
from wp_ngg_pictures as pic
join wp_ngg_gallery as gal on (gal.gid = pic.galleryid)
{$gid}
");
}
Вы также должны иметь возможность получать изображения из галереи через $nggdb->get_gallery($gid)
что может быть проще и чище.
После того как вы добавили весь (переписать) код, перейдите к Settings -> Permalinks
и повторно сохраните ваши настройки постоянной ссылки, чтобы добавить новое правило перезаписи в БД.
mysite.com/photography/weddings
теперь должен установить $photocat
переменная к weddings
и вытащить свои изображения из этой галереи.