这是我的问题。我的公司需要将供应商数据库添加到我们的 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 过滤器问题)。
有人对此有想法吗?