当访问者访问自定义模板页面时,将postID存储在会话变量中以查询数据库

时间:2013-08-31 作者:Anagio

我有一个应用程序,它有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,他们可以为页面添加书签,但如果可能的话,我宁愿使用永久链接结构。

有没有关于如何重组的建议?

1 个回复
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\' );
现在urlhttp://example.com/myvar/125 将设置变量myvar = 125.

您可以使用get_query_var(\'myvar\'); 在任何模板文件或中检索此值pre_get_posts 动作和任何其他后续挂钩。

结束

相关推荐

get all page templates

我正在一个单页WordPress网站上工作。这是我第一次尝试这个。我在第五个版本上取得了不同程度的成功。我正在启动一个新版本,我删除了主题文件夹中除标题之外的所有内容。php索引。php,函数。php,页脚。php、页面模板和样式。css当我在wp\\U Posteta中查看我的数据库时,我可以看到其中有几个页面分配了模板。我以前看过这段代码,所以我第一次尝试它,看看我能得到什么。在我的索引中。php文件。我有一个简单的标准循环。您可以看到,就在\\u post()之后,我尝试了get\\u post\\