ВАЖНОЕ ОБНОВЛЕНИЕ: я понял, что мои проблемы могли также быть связаны с обновлением WordPress 3.3.
Только что я отправил решение своего собственного вопроса о поиске Пользовательских Типов Сообщения.
В то время я использовал URL http://www.seriouslyfish.com/dev/
пока я перестроил веб-сайт.
Теперь я "пошел живой" и переместил все в http://www.seriouslyfish.com
.
По некоторым причинам это, кажется, повредило мои Пользовательские поиски Типа Сообщения. При попытке искать от полей "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 <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' );
Заранее спасибо,
Возможно, что после перемещения сайта Вы не обновили понимание WordPress того, где сайт расположен. Вы могли бы хотеть попытаться добавить следующее к Вашему wp-config.php
файл:
define('WP_SITEURL', 'http://www.seriouslyfish.com');
define('WP_HOME', 'http://www.seriouslyfish.com');
Это переопределит настройки в базе данных. Использование WordPress настройки местоположения к прямому переписывают трафик, таким образом, это могло бы решить проблему. Я предполагаю это, потому что Вы говорите, что вещи работали правильно перед перемещением сайта.
Возможно, имело бы смысл пытаться перепроверить Ваш .htaccess
файл также? Возможно, что-то там перенаправляет неправильно?
Это могла бы быть хорошая идея также для проверки action
URL на форме. Это сгенерировало плагин, надлежащий WordPress, или чем-то еще? Если это находится под Вашим контролем и может быть переписано так или иначе, возможно, Вам не нужно ручное перенаправление, используемое в ответе, с которым Вы связываетесь во главе Вашего вопроса?
Извините, если я хватаюсь за солому здесь, но трудно отладить это не имея возможности ввести код по абсолютному адресу и видеть то, что продолжается.
Проверьте, что Ваше сообщение вводит коды создания, иногда люди используют старый код, и WordPress изменил потерянный с тех пор. Независимо от того, что Вы используете для поиска, Ваши типы сообщений должны позволить следующее:
'exclude_from_search'=> false
'publicly_queryable'=> true
'has_archive'=> true
Abou поиск, я нахожу этот подход интересным: http://dbaines.com/blog/archive/wordpress-custom-post-type-multiple-search/
<form id="profilesearch_form" action="<?php echo home_url( '/' ); ?>" method="get"> <input type="hidden" name="hotel"/> <input type="text" size="50" class="profilesearch_input" name="hotel" /> <input type="submit" value="GO" class="profilesearch_submit" /> </form>
Где hotel
тип сообщения. Довольно странный, потому что получающаяся ссылка идет: ?hotel=&hotel=the-input-value
что-либо, чтобы сделать с ?s=
.
– Diana
14.06.2012, 19:26
.htaccess
файл WordPress по умолчанию с некоторыми 403 постоянных перенаправления от моей старой структуры URL?
– dunc
15.06.2012, 13:43
Вы сделали, пытаются добавить EP_PERMALINK как ep_mask (маска конечной точки) на Вашем пользовательском аргументе типа сообщения? Этот параметр мог бы быть полезным.
'permalink_epmask' => EP_PERMALINK
Я был опытом это однажды и твердость, просто повторно сбросив постоянную ссылку.
Удачи.
Вы попытались сбросить постоянные ссылки путем пересохранения их, у меня была эта проблема, и она работала на меня.
Посмотрите на Вас также определение поиска, так взгляд на то, что точно Вы ищете попытку, добавляющую эту функцию;
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');
/dev
или в базе данных или в любых файлах используется в установке WP. По сути, и поскольку я упомянул, я не убежден, что проблема связана с изменением URL. Я просто не могу разработать то, чем еще это могло быть.. – dunc 11.06.2012, 00:27