【问题标题】:Wordpress gives 404 error with a custom queryWordpress 通过自定义查询给出 404 错误
【发布时间】:2019-10-29 10:17:32
【问题描述】:

有很多类似的问题,但遗憾的是,我似乎没有一个可以解决......

我正在尝试使用 Wordpress 中的自定义查询过滤结果,通过 Wordpress 的query_vars,然而I instead get a 404 error。仅当我在 URL 中输入的查询是我添加到自定义查询 functions.php 函数中的查询之一时,才会出现此错误。

functions.php

function create_posttype_modules() {

    register_post_type( 'modules',
        array(
            'labels' => array(
                'name' => __( 'Modules' ),
                'singular_name' => __( 'Module' ),
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'modules'),
            'has_archive' => true,
            'taxonomies' => array( 'post_tag', 'category' ),
            'supports' => array('title'),
        )
    );
}
add_action( 'init', 'create_posttype_modules' );


function add_my_var($public_query_vars) {
    $public_query_vars[] = 'subject';
    $public_query_vars[] .= 'orderselected';
    return $public_query_vars;
}
add_filter('query_vars', 'add_my_var');

页面上使用的表单摘录

    <?php

echo '<form id="order" action="' . esc_url( home_url( "/" ) ) . '" method="get">';
?>
  <input type="hidden" name="subject" value="<?php echo htmlspecialchars($_GET['subject']);?>">
  <select name="orderselected" onchange='this.form.submit()'>
    <option value="name" <?php echo get_query_var('orderselected') == 'none' ? 'selected' : ''; ?>>Select</option>
    <option value="name" <?php echo get_query_var('orderselected') == 'name' ? 'selected' : ''; ?>>Name</option>
    <option value="mean" <?php echo get_query_var('orderselected') == 'mean' ? 'selected' : ''; ?>>Mean grade</option>
    <option value="first" <?php echo get_query_var('orderselected') == 'first' ? 'selected' : ''; ?>>1st %</option>
    <option value="twoone" <?php echo get_query_var('orderselected') == 'twoone' ? 'selected' : ''; ?>>2:1 %</option>
    <option value="twotwo" <?php echo get_query_var('orderselected') == 'twotwo' ? 'selected' : ''; ?>>2:2 %</option>
    <option value="third" <?php echo get_query_var('orderselected') == 'third' ? 'selected' : ''; ?>>3rd %</option>
    <option value="fail" <?php echo get_query_var('orderselected') == 'fail' ? 'selected' : ''; ?>>Fail %</option>
  </select>

    <noscript>
        <input type="submit" value="View" />
    </noscript>
</form>

我已经在子页面上进行了这项工作

我已经在子页面上进行了此操作(只有其他细微的区别是我将 cat 查询更改为 subjectwithin a page here。但是转了WP,把gradehack页面设为首页,问题就出现了。

非常感谢您的帮助!

【问题讨论】:

  • 您在哪里应用过滤器?你能添加那个代码吗?
  • 非常感谢您的帮助@ShivendraSingh - 已添加
  • A 404 表示找不到文件,任何类型的查询错误或脚本错误都不应该产生这种情况。上传文件后,您确定您在远程服务器上的文件权限正确吗?
  • 会仔细检查它们,谢谢@geoffrey。忘了说,只有当查询是添加到 functions.php 函数中的查询之一时才会发生 404 错误。

标签: php wordpress forms


【解决方案1】:

所以万一其他人遇到这个问题,原来我需要在“设置”>“阅读”中将“您的主页显示”设置为“您的最新帖子”,而不是将页面显示为静态页面。

【讨论】:

    猜你喜欢
    • 2021-06-13
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 2014-09-23
    • 1970-01-01
    相关资源
    最近更新 更多