0

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

这些 url 需要可直接访问并具有 SEF url。因此,例如:

mysite.com/vendors/
mysite.com/vendors/pipe-manufacturers/
mysite.com/vendor/bobs-pipes/

而且,自定义内容需要出现在 wordpress 模板中。

真的有2个选择:

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 标题,并且在页面标题和面包屑中找不到。

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

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

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

有人对此有想法吗?

4

1 回答 1

0

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

于 2013-02-04T22:09:35.123 回答