当从我的搜索表中点击提交时,我会进入home.php

时间:2013-08-28 作者:UzumakiDev

我正在尝试为我的网站设置搜索功能,但当我尝试搜索某个内容时,它会一直将我带到我的主页。

我已经创建了searchpage。php,我已经将其添加到我的主题中,我获取了URL并将其添加到搜索表单中。php。

以下是我的searchform的代码:

<form method="get" id="searchform" action="<?php echo esc_url( home_url( \'/\' ) ); ?>">
    <label for="s" class="assistive-text"><?php _e( \'Search\', \'lart\' ); ?></label>
    <input type="text" class="field" name="s" 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>
我想这可能与我的模板结构有关?如果你需要更多信息,尽管问。谢谢

2 个回复
SO网友:s_ha_dum

如上所述,当我尝试该代码时,我最终进入了服务器级别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 更改查询的处理方式。

SO网友:Vinod Dalvi

尝试将搜索表单操作url替换为home\\u url(“/”),并将搜索名称设置为“s”,如以下代码所示。

<form method="get" id="searchform" action="<?php echo esc_url( home_url( \'/\' ) ); ?>">
    <label for="s" class="assistive-text"><?php _e( \'Search\', \'lart\' ); ?></label>
    <input type="text" class="field" name="s" 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>

结束

相关推荐

Get_Search_link()重定向到404模板页面

我构建了一个自定义主题,其中有一个404。php页面和搜索。php页面。在模板的其他地方,我想直接链接到搜索页面。因此,我使用get\\u search\\u template()函数来获取搜索页面链接,其结果如下:http://example.org/search当我单击链接时,我会被发送到404页面模板。为什么会转到404页面模板而不是搜索页面模板?