具有SEF页面层次结构的wordpress自定义插件

具有SEF页面层次结构的wordpress自定义插件,wordpress,plugins,Wordpress,Plugins,这是我的问题。我的公司需要一个供应商数据库添加到我们的wordpress网站。现有的插件都不能满足我们的需要,我们已经有了一个包含所有信息的mysql数据库,所以我们需要创建一个插件或者做一些我们需要的事情 这些URL需要可以直接访问,并且具有SEF URL。例如: mysite.com/vendors/ mysite.com/vendors/pipe-manufacturers/ mysite.com/vendor/bobs-pipes/ 而且,自定义内容需要出现在wordpress模板中

这是我的问题。我的公司需要一个供应商数据库添加到我们的wordpress网站。现有的插件都不能满足我们的需要,我们已经有了一个包含所有信息的mysql数据库,所以我们需要创建一个插件或者做一些我们需要的事情

这些URL需要可以直接访问,并且具有SEF URL。例如:

mysite.com/vendors/
mysite.com/vendors/pipe-manufacturers/
mysite.com/vendor/bobs-pipes/
而且,自定义内容需要出现在wordpress模板中

实际上有两种选择:

1) 找到一种在wordpress之外编写应用程序的方法,但是找到一种引导wordpress显示页眉、页脚和侧边栏的方法

2) 从wordpress内部运行应用程序

所以我选择了选项2。我创建了一个名为“vendor.php”的新模板文件,并开始工作。我在主题的functions.php中添加了以下代码:

add_filter( 'template_include', 'xyz_template_check' );

function xyz_template_check() {
    global $template;

    $rqst = $_SERVER['REQUEST_URI'];

    $ra = split("/", $rqst);

    if ($ra[1] == "vendors") {

        $template_file = get_stylesheet_directory() . '/vendors.php';
        return $template_file;

    }

    return $template;


}
因此,上面的代码所做的是,如果它将“vendors”一词视为站点名称后url的第一部分,它会将您发送到vendor.php。这个很好用

除了

Wordpress认为找不到该页面。它返回一个404头,在页面标题和面包屑中找不到

使用permalink“/vendors/”添加名为“Vendor Database”的页面可以修复主页。但实际上将有数百家供应商和不同的类别。我不能为每个页面创建自定义页面。这需要是动态的

那么,如何让wordpress给出200,并提供一个可接受的页面标题、面包屑等

甚至不要让我开始使用危险的wp_标题过滤器。这不符合文件规定。不过,我突然想到这可能是Wordpress SEO的问题(wp_标题过滤器问题)


有人对此有想法吗?

好的,我知道了。解决方案是使用上面提到的重写api来查找模式/vendors/,让它知道这是一个有效的URL。再加上我现有的模板覆盖,这正是我所需要的。

所以,一个想法。也许我对每个供应商都有一个“页面”。我可以编写一个批处理作业,在数据库中运行,为数据库中的每个条目创建一个页面,然后编写一段代码,在每次添加/编辑/删除主数据库中的记录时执行所有数据库操作。除此之外,我唯一能想到的另一件事是尝试将我们所有的数据作为自定义的帖子类型放到wordpress中,但根据我的所有要求,我相信它也会起作用。专家们对此一无所知?哪怕是朝正确的方向轻轻踢一脚?