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

时间:2013-02-03 04:25:01

标签: wordpress plugins

这是我的问题。我的公司需要在我们的wordpress网站上添加供应商数据库。现有的插件都不会接近我们需要的东西,而且我们已经有了一个包含所有信息的mysql数据库,所以我们需要创建一个插件或其他东西来做我们需要的。

这些网址需要直接访问并且有SEF网址。所以,例如:

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;


}

以上代码的作用是,如果它将“供应商”这个词视为网站名称后面的网址的第一部分,它会将您发送给vendor.php。这完美地工作....

...除外

Wordpress认为找不到该页面。它返回404标题,而不是FOUND到页面标题和痕迹。

使用永久链接“/ vendors /”添加名为“供应商数据库”的PAGE可修复主页面。但是会有数百个供应商和不同的类别。我不能为每个人创建一个自定义页面。这需要是动态的。

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

甚至不让我开始使用危险的wp_title过滤器。这没有记录的工作。虽然,我刚想到这可能是Wordpress SEO的问题(wp_title过滤器问题)。

有人对此有所了解吗?

1 个答案:

答案 0 :(得分:0)

好的,这个。解决方案是使用重写api,如上所述,查找模式/供应商/,让它知道它是一个有效的URL。加上我现有的模板覆盖,这就是我需要的。