来自自定义帖子名称的多个URL

时间:2014-05-12 作者:JavierCabot

我想为Wordpress中的网站做一些特别的事情。我有一个“自定义帖子类型”,除了帖子的名称之外,它的数据都是“帖子自定义字段”。我需要为同一帖子的每个“帖子自定义字段”创建多个URL,并显示自定义帖子字段值。

例如

自定义帖子类型为custompostA此自定义帖子类型具有以下“自定义帖子字段”:customfieldA、customfieldB

我添加了一篇标题为“Example1”的新帖子

基于此,我想要两个不同的URL

www.domain。com/custompostA/Example1/customfieldA www.domain。com/custompostA/Example1/customfieldB

第一个URL将显示customfieldA值,第二个URL将显示customfieldB值

我希望自从我暴露后我已经很清楚了。

非常感谢你Javier

2 个回复
最合适的回答,由SO网友:Milo 整理而成

您可以添加查询变量和重写规则来处理额外的URL数据-

添加wpd_cf 查询变量到已知查询变量列表:

function wpd_add_query_var( $query_vars ){
    $query_vars[] = \'wpd_cf\';
    return $query_vars;
}
add_filter( \'query_vars\', \'wpd_add_query_var\' );
添加重写规则以处理传入请求,并设置wpd_cf 查询变量。此特定规则将匹配大小写字母加连字符。WordPress有一个默认规则,用于捕获多页帖子的帖子名称后的数字,因此这将避免捕获这些请求。第一个参数应与自定义帖子类型的URL slug匹配,第二个参数应设置在其下注册自定义帖子类型的键。

function wpd_add_rewrite_rule(){
    add_rewrite_rule(
        \'custompostA/([^/]+)/([-A-Za-z]+)/?$\',
        \'index.php?custompostA=$matches[1]&wpd_cf=$matches[2]\',
        \'top\'
    );
}
add_action( \'init\', \'wpd_add_rewrite_rule\' );
然后在模板(或模板过滤器)中,可以检查wpd_cf:

$the_requested_field = get_query_var( \'wpd_cf\' );
在进行任何更改后,不要忘记刷新重写规则,这可以通过访问admin中的Permalinks设置页面来完成。

SO网友:Christopher Carvache

好您可以通过使用Pods插件来实现这一点。这将需要重新编码您正在做的事情,但Pods对通配符支持的本机支持将使这成为可能,并且不需要太多代码来实现。

结束

相关推荐

在unctions.php文件中链接Java脚本

下面是我从html模板中嵌入的原始javascript。但我不知道如何将其添加到我的函数中。php文件。这似乎很难。请您使用wp_enqueue_script 作用<script src=\"../assets/components/plugins/ajaxify/script.min.js?v=v1.9.6&sv=v0.0.1\"></script> <script>var App = {};</script>