Intereting Posts
Действие save_post не передает post id моей функции в качестве аргумента wordpress действует как functions.php не существует Удалить содержимое сообщения из активности приятеля WordPress Query orderby title с строкой UTF8 в заголовке Функция is_tax () работает не так, как ожидалось Отключите трекбэк / pingback и комментарии на всех существующих многосайтовых сайтах get_header_image () вызывает проблему с приоритетом видимого содержимого в странице Speed ​​Insights Как я могу кэшировать ответ API WordPress Rest Почему не появляются имя first_name и last_name при печати объекта WP_User? WordPress 3.5 – добавление пользовательского размера изображения Сценарий для удаления всех неактивных виджетов? Автоматически включать пользовательскую тему, плагины и содержимое по умолчанию при установке? Получить количество сообщений из результатов текущей страницы Добавление отсканированного сообщения в меню навигации Использование нового WP_Query в шорткоде в настраиваемом поле приводит к тому, что основной контент сообщения не отображается

Почему мои пользовательские поисковые запросы перестали работать после изменения URL-адресов / обновления WordPress?

ВАЖНОЕ ОБНОВЛЕНИЕ: Я понял, что мои проблемы также могут быть связаны с обновлением WordPress 3.3 .


Некоторое время назад я опубликовал решение своего вопроса о поиске пользовательских типов сообщений.

В то время я использовал URL http://www.seriouslyfish.com/dev/ пока я переработал веб-сайт.

Теперь я «поехал вживую» и переместил все на http://www.seriouslyfish.com .

По какой-то причине это, похоже, нарушило мои пользовательские запросы типа запроса. Если вы попытаетесь выполнить /search/ блоках « PROFILESEARCH » или « QUESTIONSEARCH », вы увидите, что он перенаправляется на /search/ вместо /questions/search или /species/search .

У меня установлен анализатор перезаписи, но я не думаю, что это проблема, поскольку этот URL-адрес работает правильно: http://www.seriouslyfish.com/species/search/betta .

Любая идея, что может быть причиной этого? Я не уверен на 100%, что проблема связана с изменением URL-адреса, так как ни один из кодов, необходимых для изменения.


.htaccess

 RewriteEngine On RewriteCond %{QUERY_STRING} genus=([a-zA-Z0-9-]+)&species=([a-zA-Z0-9-]+) RewriteRule ^profile.php$ /species/%1-%2? [L,R=301] RewriteCond %{QUERY_STRING} id=([0-9]*) RewriteRule ^profile.php$ calc.php?id=%1 [L,R=301] RewriteRule ^kb.php$ /knowledge-base/ [L,R=301] # 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 

wp-config.php (или несколько строк в нем – в файле не существует ничего другого, связанного с URL-адресами)

 define('WP_SITEURL', 'http://www.seriouslyfish.com'); define('WP_HOME', 'http://www.seriouslyfish.com'); 

действия формы

PROFILESEARCH

 <h1 class="profilesearch">PROFILE<span class="white">SEARCH</span></h1> <form id="profilesearch" action="<?php echo home_url( '/species/' ); ?>" method="get"> <input type="text" size="50" class="default-value" value="SEARCH" name="s" /> <input type="submit" value="GO" class="profilesearch_submit" /> <label style="width: 180px;">SEARCH FISH SPECIES PROFILES</label> </form> 

QUESTIONSSEARCH

 <h1 class="profilesearch">QUESTION<span class="white">SEARCH</span></h1> <form id="profilesearch" action="<?php echo qa_get_url('archive'); ?>" method="post"> <input type="hidden" name="type" value="profile" /> <input type="text" size="50" class="default-value" value="<?php the_search_query(); ?>" name="s" /> <input type="submit" value="GO" class="profilesearch_submit" /> </form> 

GLOSSARYSEARCH

 <div class="glossary" href="#"> GLOSSARY &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong class="dkblue">▼</strong> <span> <form action="<?php echo home_url( '/glossary/' ); ?>" method="get"> <p style="font-size:12px;">SEARCH<strong class="dkblue">GLOSSARY</strong></p> <input type="text" name="s" value="" /> <input type="submit" value="GO" class="glossary_submit" /> </form> <div class="glossaryletters"> <a href="/glossary/a/">A</a> ... <a href="/glossary/z/">Z</a> <div class="clear"></div> </div> </span> </div> 

Функция custom_rewrite

 /* --- rewrite rules for searches...*/ function custom_rewrite( $wp_rewrite ) { $species = array( '(species|glossary)/search/(.+?)(/page/([0-9]+))?/?$' => 'index.php?post_type='.$wp_rewrite->preg_index(1).'&s='.$wp_rewrite->preg_index(2).'&paged='.$wp_rewrite->preg_index(4) ); $wp_rewrite->rules = $species + $wp_rewrite->rules; } // refresh/flush permalinks in the dashboard if this is changed in any way add_filter( 'generate_rewrite_rules', 'custom_rewrite' ); 

Заранее спасибо,

Solutions Collecting From Web of "Почему мои пользовательские поисковые запросы перестали работать после изменения URL-адресов / обновления WordPress?"

Возможно, после перемещения сайта вы не обновили понимание WordPress того, где находится сайт. Возможно, вы захотите добавить в файл wp-config.php :

 define('WP_SITEURL', 'http://www.seriouslyfish.com'); define('WP_HOME', 'http://www.seriouslyfish.com'); 

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

Может быть, имеет смысл попробовать перепроверить свой файл .htaccess ? Может, что-то перенаправляется неправильно?

Также может быть хорошей идеей проверить URL-адрес action в форме. Это генерируется плагином, собственно WordPress или чем-то еще? Если это под вашим контролем и может быть каким-то образом переписано, возможно, вам не понадобится ручное перенаправление, используемое в ответе, на который вы ссылаетесь в верхней части своего вопроса?

Извините, если я хватаюсь за соломинку здесь, но это сложно отладить, не имея возможности высунуть код и посмотреть, что происходит.

Вы пытаетесь добавить EP_PERMALINK в качестве ep_mask (маска конечной точки) в свой пользовательский тип post arg.? Этот параметр может быть полезен.

 'permalink_epmask' => EP_PERMALINK 

Я испытал это однажды и решился, просто повторно промыв постоянную ссылку.

Удачи.

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

 'exclude_from_search'=> false 'publicly_queryable'=> true 'has_archive'=> true 

В поисках поиска я нахожу этот подход интересным: http://dbaines.com/blog/archive/wordpress-custom-post-type-multiple-search/

Вы пытались сбросить постоянные ссылки, повторно сохранив их, у меня была эта проблема, и это сработало для меня.

Вы также посмотрели на определение поиска, поэтому, глядя на то, что именно вы ищете, попробуйте добавить эту функцию;

 function mySearchFilter($query) { $post_type = $_GET['type']; if (!$post_type) { $post_type = 'any'; } if ($query->is_search) { $query->set('post_type', $post_type); }; return $query; }; add_filter('pre_get_posts','mySearchFilter');