2015-04-09 2 views
0

У меня проблема с перепиской URL. Страница профиля, созданная из wp-admin, название которой предполагает профиль и настраиваемый шаблон, назначается на страницу профиля. Я использовал пользовательскую структуру permalink (/% postname%) для сайта.Wordpress url rewrite issue для страницы имеет пользовательский шаблон

Теперь я хочу URL выглядеть следующим образом:

http://www.example.com/profile/abc2015

В настоящее время я прохожу QueryString как

http://www.example.com/profile/?pagename=profile&name=abc2015

Я пытался использовать следующий код в функции ТЕМЫ .php:

<?php 
     function custom_rewrite_rule() 
     { 
     add_rewrite_tag('%name%', '([^&]+)');   
     add_rewrite_rule('^profile/([^/]*)/?$','index.php?pagename=profile&name=$matches[1]','top');  
     } 
     add_action('init', 'custom_rewrite_rule'); 
    ?> 

Я не нашел никакого решения. Кто-то может помочь?

Спасибо

ответ

1

Попробуйте

function create_new_url_querystring() { 
    add_rewrite_rule(
     '^profile/([^/]*)$', 
     'index.php?pagename=profile&name=$matches[1]', 
     'top' 
    ); 

    add_rewrite_tag('%name%','([^/]*)'); } add_action('init', 'create_new_url_querystring'); 

Это не проверял, но надеюсь, что это помогает. Другая полезная информация, которая может помочь вашим работам работать.

Flush Rewrite Правила

При изменении структуры URL WordPress или добавить новые правила перезаписи, то база данных WordPress нужно будет обновить с новым URL правила это так будет понять, как искать ваш сообщений с данного URL. Иногда возникает проблема с изменением структуры URL-адреса, а WordPress возвращает страницу 404 для ваших сообщений. Это может быть связано с тем, что правила перезаписи не обновились правильно.

Есть несколько способов обновления правил постоянной ссылки. Сначала вы можете перейти на страницу постоянных ссылок «Настройки» -> «Постоянная ссылка» и изменить постоянную ссылку, нажмите кнопку «Сохранить», а затем верните ее так, как она была. Это обновит все правила перезаписи на вашем веб-сайте и отобразятся ваши настраиваемые типы сообщений. Во-вторых, вы можете открыть phpMyAdmin, перейти в таблицу wp_options и удалить запись правил перезаписи из этой таблицы. В следующий раз, когда загрузится WordPress, он проверит правила перезаписи в этой таблице, если их там нет, тогда он будет регенерировать правила.

Третий вариант заключается в том, чтобы поместить функцию flush_rewrite_rules() в соответствии с правилами перезаписи реестра. Это полностью обновит правила перезаписи и устранит любые проблемы с перенаправлением.

flush_rewrite_rules(); 
+0

Я пробовал код, но не работал. Показать URL-адрес, например http://www.example.com/profile?name=abc2015 –

+0

Нужно ли писать код перезаписи в файл .htacces? Если да, то как писать? –

+0

Только что получил аналогичную проблему. Ознакомьтесь с http://stackoverflow.com/questions/16664579/url-rewriting-via-wordpress-rewrite-or-htaccess-solved –

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