2013-07-06 5 views
1

Я использую wordpress, и я пытаюсь передать usename var с сайта www.mysite.com/username на var на странице wordpress. У меня много проблем. Я понятия не имею, если переписывание не работает, а страницы wordpress закомментируют мой php. Какие-либо предложения? Кто-нибудь знает, как это сделать?wordpress: Имя пользователя referral в url

файл .htaccess:

RewriteEngine On 
RewriteRule ^index\.php$ - [L] 
RewriteRule ^([^/.]+)$ /index.php?username=$1 [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

ответ

2

Вы не можете передать ВАР из www.mysite.com/username в вар в WordPress странице, потому что это будет означать, что все ссылки будут вести к одной и той же странице и var по имени пользователя, вы получите много конфликтов и много проблем.

Я могу поделиться с вами своим кодом при создании страницы профиля. EG: Профиль и наличие довольно постоянной ссылки www.mysite.com/profile/eek

Это будет доступ к профилю страницы Wordpress, который я установил как page-profile.php в моей теме, и следующую переменную (например, : Eek) в переменную, в моем примере она будет переменной $ who.

Добавьте к этому functions.php

add_filter('page_rewrite_rules', 'profile_page_rewrite_rules'); 
function profile_page_rewrite_rules($rewrite_rules) 
{ 
    end($rewrite_rules); 
    $last_pattern = key($rewrite_rules); 
    $last_replacement = array_pop($rewrite_rules); 
    $rewrite_rules += array(
     '(.+?)/([^/]+)/?$' => 'index.php?pagename=$matches[1]&who=$matches[2]', 
     $last_pattern => $last_replacement, 
    ); 
    return $rewrite_rules; 
} 

add_rewrite_tag('%who%','([^&]+)'); 

Затем обновите пермалинки из Настройки-> Permalinks Настройки -> Сохранить.

И страничная profile.php

Чтобы получить текущий пользователь, у меня есть этот фрагмент:

<?php $who = (get_query_var('who')) ? get_query_var('who') : 0; 
     if($who){$user = get_user_by('login', $who);} 

     else{ 
      if(is_user_logged_in()){ 
       $user = wp_get_current_user(); 
      }else{$user = 0;} 
     } 
?> 

Более подробно о добавлении правила перезаписи на WordPress здесь: http://codex.wordpress.org/Rewrite_API/add_rewrite_rule

Кроме того, я использую классный плагин для отладки моих переписываний, это один: http://wordpress.org/plugins/monkeyman-rewrite-analyzer/ (да, ему 2 года, но он по-прежнему работает как шарм).

Надеюсь, это было полезно!

+0

благодарит за вашу помощь! – mrhidiho

+0

Без проблем :) Рад, что это помогло. Не забудьте принять ответ :) – Eek

Смежные вопросы