我有一个应用程序,它有3种自定义的帖子类型,A、B和C。帖子类型B和C与使用acf关系字段的A相关。我为帖子类型设计了一个模板。查看此模板时,将查询并显示A、B中的post meta。
登录后,我的用户转到仪表板并从选择列表中选择一个CPT(自定义帖子类型)。这将在会话变量a中设置postID,并将其重定向到a的permalink。
在系统中,我的用户需要一种方式来查看所有B和C CPT中的各种数据,因此对于这些场景中的每一个,我都创建了一个具有自定义模板的唯一页面,一个页面显示所有相关的B post meta,另一个页面显示所有C的post meta。
每个用户都可以有许多自定义的帖子类型,都有自己独特的与B和C相关的帖子类型。
例如
A、 1B。1、B.1、B.1、B.1、B.1C。1、C.1、C.1、C.1、C.1、C.1
A、 2B。2、B.2、B.2、B.2、B.2、C.2、C.2、C.2、C.2、C.2、,
我需要一些如何创建唯一的URL,以便他们可以书签,并直接转到自定义页面,以显示与A.2 CPT相关的所有B.2 CPT信息。
现在,当他们在一个CPT之间切换时,他们使用一个选择下拉列表,该下拉列表将清除并重置存储A CPT ID的会话变量。因此,当他们转到页面显示B时,他们会看到正确的相关数据。
如何在没有参数的情况下设置页面/帖子和唯一的永久链接URL,以便他们可以查看数据。我知道我可以发帖吗?val=23,他们可以为页面添加书签,但如果可能的话,我宁愿使用永久链接结构。
有没有关于如何重组的建议?
SO网友:gmazzap
如果您只需要在get变量中转换permalink结构,请使用endpoint.
<?php
/**
* Plugin Name: Question 112350 Plugin
* Author: G.M.
*/
/**
* Add a new role cloning capabilities from editor and flush rewrite rules
*/
function install_q112350_plugin() {
plugin_q112350_endpoint();
flush_rewrite_rules();
}
/**
* Remove the role and flush rewrite rules
*/
function unistall_q112350_plugin() {
flush_rewrite_rules();
}
/**
* Add the endpoint
*/
function plugin_q112350_endpoint() {
add_rewrite_endpoint( \'myvar\', EP_ALL );
}
add_action( \'init\', \'plugin_q112350_endpoint\' );
register_activation_hook( __FILE__, \'install_q112350_plugin\' );
register_deactivation_hook( __FILE__, \'unistall_q112350_plugin\' );
现在url
http://example.com/myvar/125
将设置变量
myvar = 125
.
您可以使用get_query_var(\'myvar\');
在任何模板文件或中检索此值pre_get_posts
动作和任何其他后续挂钩。