Запрос профиля Отправить
У меня есть следующий код:
<?php
$id=$_GET['id'];$id=str_replace('_',' ',$id);
global $wpdb;
$res = $wpdb->get_results("SELECT * FROM `agents` WHERE `name`='".$id."'");
foreach ($res as $row) {
$name = $row->name;
echo $name;
}
?>
Когда я нажимаю "Отправить", в профилях отображается следующий URL: http://www.website.com/profile/?id=first_last
Есть ли способ отобразить URL, как это: http://www.website.com/profile/first-last/
Спасибо,
Джон
1 ответ
Вы можете использовать переписывание htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^profile/(.*) /profile/?id=$1 [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
или WordPress page_rewrite_rules:
Вы можете добавить этот блок кода в файл functions.php вашей темы.
add_filter( 'page_rewrite_rules', 'my_page_rewrite_rules' );
function my_page_rewrite_rules( $rewrite_rules )
{
// The most generic page rewrite rule is at end of the array
// We place our rule one before that
end( $rewrite_rules );
$last_pattern = key( $rewrite_rules );
$last_replacement = array_pop( $rewrite_rules );
$rewrite_rules += array(
'profile/([0-9]+)/?$' => 'index.php?pagename=profile&id=$matches[1]',
$last_pattern => $last_replacement,
);
return $rewrite_rules;
}
Кодекс Wordpress: http://codex.wordpress.org/Rewrite_API/add_rewrite_rule
Документация: http://www.hongkiat.com/blog/wordpress-url-rewrite/