• Помогите пожалуйста в реализации «надстройки» в адресной строке. Для примера я выделил жирным шрифтом.

    http://vk.com/id123456780
    http://www.site.com/profile/123456780
    http://www.site.com/profiles/123456780/projects/backed

    id123456780 — Этот идентификатор пользователя моего сайта.

    или же

    Например, ссылки вида http://www.site.com/users/ <Логин пользователя> или <идентификатор пользователя>

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Модератор Юрій

    (@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 на предмет существования такого пользователя.

    Как сделать что бы проверка данного пользователя была по другой базе и таблице?

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Тема «Надстройка в адресной строке» закрыта для новых ответов.