WordPress防止404丢失自定义帖子

时间:2015-07-02 作者:the_critic

我试图实现的是从第三方数据源获取数据,并将每条信息显示为WP主题中的“帖子”。现在,WP主题本质上与自定义帖子类型一起工作,并根据其名称查找给定的属性(是的,我说的是不动产)。因此,假设该房产被称为“海滩上的房子”,它会继续在数据库中查找它的slug,如果最终找不到它,它会自动重定向到404。这就是我想要阻止的,同时又不破坏整个邮政系统。

具体来说,当用户转到http://example.com/index.php/property/23451, 我想自己处理这些参数,而不是WP在数据库中自动搜索属性的slug“23451”,并在失败时重定向到404。

我认为这与WordPress循环和WP\\U查询有关。它似乎失败了,并自动重定向到404。我能以某种方式规避这种行为吗?

这是我第一次使用Wordpress,因此非常感谢您的帮助。

1 个回复
SO网友:Milo

处理此问题的最简单方法是使用slug创建一个页面property 它将用于显示所有属性,并添加重写规则来处理属性ID的请求。

// add property_id query var to hold ID of requested property
function wpd_query_var( $query_vars ){
    $query_vars[] = \'property_id\';
    return $query_vars;
}
add_filter( \'query_vars\', \'wpd_query_var\' );

// add rewrite rule to handle requests for specific properties
function wpd_rewrite_rule(){
    add_rewrite_rule(
        \'property/([0-9]+)/?$\',
        \'index.php?pagename=property&property_id=$matches[1]\',
        \'top\'
    );
}
add_action( \'init\', \'wpd_rewrite_rule\' );
将此代码添加到主题后,请访问permalinks设置页面刷新重写规则functions.php, 或者在插件中。

然后在你的page-property.php 模板,使用get_query_var( \'property_id\' ); 获取请求属性的ID。

结束

相关推荐

Wrong Redirection

我的网站登录页,即techisthenewcool.tk/wp-admin 正在重定向到网站主页。我不知道为什么会这样。我试着在谷歌上搜索,但没有找到结果。我使用Hostinger印度免费托管服务。任何建议。