Disabling post_type in URL

时间:2019-03-06 作者:friendlygiraffe

我注意到,默认情况下,如果您使用mysite,WordPress会列出所有帖子。com公司/?post_type=post 在URL的末尾。

停用此功能的最简单方法是什么?我希望它重定向到我的404页。

1 个回复
SO网友:mrben522

我想你可以通过过滤器来完成这一点。查看核心wp 你会发现$public_query_vars$private_query_vars由硬编码数组定义的变量。这些可能会通过全局$wp 对象,但如果深入一点,则会有一个筛选器,仅在解析请求时才允许从公共数组中删除项。以下是core的代码和文档:

/**
         * Filters the query variables whitelist before processing.
         *
         * Allows (publicly allowed) query vars to be added, removed, or changed prior
         * to executing the query. Needed to allow custom rewrite rules using your own arguments
         * to work, or any other custom query variables you want to be publicly available.
         *
         * @since 1.5.0
         *
         * @param array $public_query_vars The array of whitelisted query variables.
         */
        $this->public_query_vars = apply_filters( \'query_vars\', $this->public_query_vars );
那是在parse_request() 因此,此时从数组中删除有问题的变量应该可以阻止查询字符串工作,而不会破坏任何内容。请记住,我还没有测试过任何一个理论,我可能在这里完全不正确。祝你好运

如果这要么不起作用,要么不是您想要处理的方式,那么您需要使用。htaccess重定向以完成此操作。

相关推荐

Query posts by Post title

我使用下面的ACF查询生成一个列表,效果很好。然而,现在我想按标准WP“post title”而不是ACF自定义字段“datum”对列表进行排序我该怎么做?// args $args = array( \'posts_per_page\' => 999, \'post_type\' => \'lezing\', \'orderby\' => \'meta_value\', \'order\' => \'ASC\',