如上所述,当我尝试该代码时,我最终进入了服务器级别404页面。如果这是一个标准的WordPress搜索(我不确定是否是),您需要使用name="s"
而不是name="q"
. WordPress使用s
GET
用于搜索的变量。
以下内容将提交到我在安装中指定的任何页面:
<form method="get" id="searchform" action="<?php echo site_url(\'sample-page\')?>">
<label for="s" class="assistive-text"><?php _e( \'Search\', \'lart\' ); ?></label>
<input type="text" class="field" name="q" id="s" placeholder="<?php esc_attr_e( \'Search\', \'lart\' ); ?>" />
<input type="submit" class="submit" name="submit" id="searchsubmit" value="<?php esc_attr_e( \'Search\', \'lart\' ); ?>" />
</form>
这也是:
<form method="get" id="searchform" action="<?php echo get_permalink(2); ?>">
<label for="s" class="assistive-text"><?php _e( \'Search\', \'lart\' ); ?></label>
<input type="text" class="field" name="q" id="s" placeholder="<?php esc_attr_e( \'Search\', \'lart\' ); ?>" />
<input type="submit" class="submit" name="submit" id="searchsubmit" value="<?php esc_attr_e( \'Search\', \'lart\' ); ?>" />
</form>
根据上述评论,
searchpage.php
是WordPress搜索页面。如果希望该页面处理表单,则需要使用
name="s"
而不是
name="q"
. 这是WordPress搜索的触发器。然后您可以连接到
pre_get_posts
更改查询的处理方式。