Модератор
Юрій
(@yube)
Например, ссылки вида http://www.site.com/users/ <Логин пользователя>
Ссылки вида хттп://сайт/user/логин_юзера изначально заложены в функционал движка. По умолчанию выводятся посты указанного юзера. Если нужно что-то другое, то нужно делать свой шаблон (документация -> иерархия щаблонов).
Нашел некоторое решение !
У меня есть ссылка вида:
http://www.site.com/profiles?id=123456780
а нужно что бы была такая:
http://www.site.com/profiles/123456780
Для этого я использую в .htaccess такое правило:
RewriteRule ^profiles/([^/\.]+)/?$ /profiles?id=$1 [L]
Но все равно не работает, выдается вся такая же ссылка
http://www.site.com/profiles?id=123456780
К тому же у меня в .htaccess уже есть некоторые заполнения
———————————————————————-
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
——————————————————
Модератор
Юрій
(@yube)
Но все равно не работает, выдается вся такая же ссылка
Правила в .htaccess к выдаче ссылок не имеют отношения.
К тому же у меня в .htaccess уже есть некоторые заполнения
Кастомные правила надо ставить до вордпрессовских, ибо [L] означает «last», то бишь «последнее».
Юрий
в .htaccess я не собирался делать какую то выдачу.
Мне нужно преобразовать ссылку одного вида в другой вид!
Модератор
Юрій
(@yube)
в .htaccess я не собирался делать какую то выдачу.
А кто написал:
Для этого я использую в .htaccess такое правило:
RewriteRule ^profiles/([^/\.]+)/?$ /profiles?id=$1 [L]
Но все равно не работает, выдается вся такая же ссылка
Мне нужно преобразовать ссылку одного вида в другой вид!
Ссылка — это то, что в атрибуте href
тега a
в html страницы. .htaccess на это никак не влияет, он влияет (если влияет) на обработку uri запроса.
Ok… Спасибо!
А как можно с url строки достать такое значение как 123456780
http://www.site.com/profiles/123456780
url строки могут быть и такие
http://www.site.com/profiles/123456780/projects/backed
Ссылки вида хттп://сайт/user/логин_юзера изначально заложены в функционал движка. По умолчанию выводятся посты указанного юзера. Если нужно что-то другое, то нужно делать свой шаблон (документация -> иерархия щаблонов).
У вас есть пример где посмотреть как оно делается
Модератор
Юрій
(@yube)
А как можно с url строки достать такое значение как 123456780
Смотря для чего его доставать. Тут надо учитывать один момент: REQUEST_URI никуда не девается, то есть, попадает на обработку движку, и он может понять его не совсем так, как хочется. Например, url /profiles/123456780 может быть опознан движком как 123456780 подстраница (фиг его знает как назвать то, что получается, если стат.страницу разбить тегом <!--nextpage-->
) страницы profiles.
Тему про извлечение «лишних» параметров пару раз поднимали, я даже её себе в закладки положил. Вот она.
У вас есть пример где посмотреть как оно делается
Я Вас нечаянно обманул (ну нельзя, видимо, в моем возрасте ковыряться в одном движке, а отвечать по совсем другому). Не /user/
, а /author/
. Можете проверить/author/admin/
на любом WP-сайте, где не удален юзер с логином admin.
Что то питаюсь сделать! Я использую для перехода вот такую ссылку
<a href="<?php echo get_option('home'); ?>/profiles?id=123">blabla</a>
а в functions.php такое выражение
function add_my_var($public_query_vars) {
$public_query_vars[] = 'myvar';
return $public_query_vars;
}
add_filter('query_vars', 'add_my_var');
function do_rewrite() {
add_rewrite_rule('mypage/([^/]+)/?$', 'profiles?id=1','top');
}
add_action('init', 'do_rewrite');
все ли верно …
Когда использовать такую ссылку /author/admin/
admin или его ID — будет проверятся в базе данных wordpress-a в таблице wp_users на предмет существования такого пользователя.
Как сделать что бы проверка данного пользователя была по другой базе и таблице?