1099511627776
Ответы в темах
-
Вобщем у меня получилось вот таким способом:
function func_404_redirect($query){ global $wp_query; $post = get_post(2); $wp_query->queried_object = $post; $wp_query->is_single = true; $wp_query->is_404 = false; $wp_query->queried_object_id = $post->ID; $wp_query->post_count = 1; $wp_query->current_post=-1; $wp_query->posts = array($post); } add_filter('template_redirect','func_404_redirect');
Но на stackoverflow человек посоветовал делать через 404.php в самом шаблоне.
Какой из этих способов лучше пока незнаюКод простой:
function func_404_redirect($query){ //global $wp_query; //$old_url = $wp_query->query['pagename']; $post = get_post(2); //print get_permalink(2); //print_r($post); //print_r($query); $query->query_vars['name'] = get_permalink($post);//$post->post_name; //print get_permalink($post); //print_r($query); //die(); return $query; //die(); /*$content = $post->post_content; $content = apply_filters('the_content', $content); $content = str_replace(']]>', ']]>', $content); echo $content;*/ } add_action('parse_request','func_404_redirect');
Если используется действие parse_request, то достаточно указать ярлык нужной записи в поле name массива query_vars.
какой именно «Ярлык» ? post_name? post_id? guid? permalink?
Перепробовал все выше стоящие варианты — не пошло. выводит 404 ошибку
Форум: Плагины
Тема: помогита разообраться с add_rewrite_ruleЭээээ…. Короче, читать тут http://codex.wordpress.org/Plugin_API
ЭЭЭЭэ дык это то я найду. меня интересует как именно сделать реврайт если add_rewrite_ — не работает (см. пример выше). а php функция header(..) может делать только 301 редирект который в моих условиях неприемлем
Форум: Плагины
Тема: помогита разообраться с add_rewrite_ruleА можно пример хука. т.к. я пока что вижу только выход через ф-цию php header(….) но это тот же самый редирект
Форум: Плагины
Тема: помогита разообраться с add_rewrite_ruleА разница лишь в том, что нагрузка ляжет не на ВП, а на апач. И второй момент — это увидит любой вебмастер, подобравший сайт после Вас и не будет ломать голову откуда такие непонятки.
Наверное я прислушаюсь к этому совету. Но всетаки для себя хочу знать почему
function add_rewrite_rules(){ add_rewrite_rule('^1300/1308.html/$','index.php/?p=20','top'); } add_action( 'init','add_rewrite_rules' );
вот такой вот код не срабатывает ? а именно если я захожу на страницу 1300/1308.html то мена 301-м редиректом перебрасывает на эту ще страницу но со слешем в конце. А дальше — на главную страницу?
Форум: Плагины
Тема: помогита разообраться с add_rewrite_ruleТребование вполне справедливое. Решается в хтацессе.
Для одного УРЛа — согласен Но для 3тыс урлов ?
Причем которые не подпаают под шаблон!! Наведу пример/006589 /00751d /007740 /0077b8 /0092e5 /0147a4 /017bc1 /019445 /01ad33 /01e00e /01f8ba /01fd24 ....................... /zvezdocheti_stekautsa_v_brekon /zolotye-peski /zolotoi_novi_god_v_birme /zolotoi_ipad_v_dubae /zizn_pi_vdohnovlaet_turistov /zimnii_izrail /zimnie_prazdniki_pribligautsa
все эти УРЛы хранятся в БД.
Форум: Плагины
Тема: помогита разообраться с add_rewrite_ruleНе надо искать проблем, там где их нет. Скажите какие правила ЧПУ (УРЛы) были, и какие стали на др. домене.
А лучше гуглите как перенести сайт на новый домен и прописать 301Дык я и сам в курсе что так лучше. но Требоание клиента чтобы 301 небыло.
Уговаривал всякими способами но ни в какую. Знаю, что скажете, надо было клиента послать и не браться за работы но уже 90% работы сделано. остался вот этот редирект.те 3к страниц в функии — это нормально? 🙂
Если что — правила реврайта одинаковы и для хтацесса и для add_rewrite_ruleНу какбы я не собираюсь запихивать все реврайты в одну функцию. просто в старой базе все УРЛы хранились в БД вот их я оттуда буду черпать и соответственно подставляться (или не подставлять add_rewrite…)
Форум: Плагины
Тема: помогита разообраться с add_rewrite_ruleА по-нормальному: в хтацессе 301
~ 3000 страниц в .htaccess ??
(+в базе поменять при необходимости) — не?
да но в базе есть вот такие url-ы — «/1300/1308.html» как мне его захватить ?