Сопоставление нескольких URL-адресов с одной и той же страницей


Я только что наткнулся на эту страницу с почти такими же требованиями, как у меня

Несколько конечных точек на одной странице

Мне нужно добиться такой же функциональности, но я также хочу передать некоторые параметры на страницу, где будут отображаться все эти URL-адреса. скажем, пример

http://mysite.com/test/link1
http://mysite.com/test/link2 
http://mysite.com/test/link3 

Я хочу сопоставить их с одним и тем же URL-адресом

http://mysite.com/test/finalDestination

Вместе с этим я также хочу отправить некоторые другие параметры, такие как

  1. электронная почта пользователя
  2. имя пользователя

Итак что я могу использовать их на этой странице для своей пользовательской логики. я знаю, как это сделать в JSP/Java, где я могу отправить их в качестве параметров запроса в POST-запросе и могу повторно получить их в окончательном JSP

Как я могу добиться этого, используя wordpress php.my предпочтения заключаются в том, чтобы не использовать какую-либо строку запроса.

Или это возможно, например, если я создам URL-адрес с помощью

http://mysite.com/test/user1
http://mysite.com/test/user2 
http://mysite.com/test/user3

Где пользователь1 и т. Д. Могут быть извлечены из базы данных, и мы можем гарантировать, что они будут уникальными с помощью приложения и сопоставления эти URL-адреса ведут к одной и той же конечной точке. как я могу получить имя пользователя на своей последней странице?

Заранее благодарю

Author: Community, 2011-11-20

3 answers

Вы можете использовать тот же ответ, что и на вопрос, на который вы ссылались (я ответил на него). Вот как вы изменили бы передачу аргументов:

<?php
    add_action('init', 'add_my_rule');

    function add_my_rule()
    {
        global $wp;
        $wp->add_query_var('args');

        add_rewrite_rule('test\/finaldestination\/(.*)','index.php?pagename=about&args=$matches[1]','top');
    }
?>

Предполагая, что "окончательное определение" всегда остается неизменным, а имя страницы (slug) - "о" (вы можете изменить оба). Примените свой пользовательский шаблон к этой странице и в шаблоне сделайте следующее:

//if you visit http://.../test/finaldestination/name/romeo, then $params will be name/romeo. You can explode this and get the value.
$params = get_query_var('args');

После того, как вы поместите этот код в свой файл, просто перейдите к Settings>Permalinks и нажмите кнопку Сохранить. Я не пробовал этого, но использовал нечто подобное в недавний проект, и я уверен, что он сработает.

 2
Author: Rutwick Gangurde, 2011-11-22 16:09:25

Просто не забудьте добавить канонический URL-адрес в заголовок дубликатов страниц, ссылаясь на основной экземпляр страницы... в противном случае вы получите дублированный контент, что плохо сказывается на SEO (имеет значение только то, являются ли эти страницы общедоступными и индексированными).

Также подошел бы для темы author.php или постоянная ссылка %автор%, если это обычные пользователи WordPress. Вы можете получить доступ к данным примерно так:

$author = get_user_by('slug', $author_name);
$author_id = (int)$author->ID;
$name = $author->first_name.' '.$author->last_name;

Кодекс WP: get_user_by()

 0
Author: Martin Zeitler, 2012-12-05 10:00:22

Если ваши слова правильно меня поняли, возможные решения здесь:

Для первой части вы можете использовать плагин перенаправления WordPress , чтобы легко удовлетворить ваши потребности.

Для второй части вы можете использовать %author% для структур постоянных ссылок. Ознакомьтесь с кодексом.

 -1
Author: IFightCode, 2011-11-21 09:23:27