基于上一页的single.php的条件格式?

时间:2014-06-09 17:24:30

标签: wordpress

这是一直在吃我的人。

我收集了12个名为“产品”的帖子,这些帖子被分配了类别,比如“军事”,“卡车运输”,“建筑”和“铁路”。其中很多都是重叠的,例如,产品1可能适用于军用和货运,而产品2只适用于铁路。很容易。

这是它变得有趣的地方。军事页面(使用一个模板)将引入已分配给军事类别的所有产品,以及用于货运的相同(使用不同的模板)。一切都很好,但当我点击产品1时,我希望它保留它刚刚出现的页面模板。

基本上,我如何根据他们输入的页面生成single.php的格式?这甚至可能吗?

2 个答案:

答案 0 :(得分:0)

我要做的是在页面加载时页面检查上一页ID的cookie。检查该页面ID的布局是什么并为其提供服务。

将其放入footer.php文件中:

global $wp_query; // Get the global query object
$post_id = $wp_query->post->ID; // Set ID to variable

setcookie('last_id', $post_id, false, '/'); // Set cookie for subsequent requests

这将在当前页面上运行所有代码后设置cookie。它实质上是为下一页设置cookie。然后,您可以检查代码中的单个模板:

if(isset($_COOKIE['last_id']){
    $id = intval($_COOKIE['last_id']);
    // Code for setting template
}

答案 1 :(得分:0)

有一个Wordpress标签可以做到这一点 - wp_get_referer。我只想自己解决这个问题,并在http://zoerooney.com/blog/tutorials/using-the-referring-page-in-wordpress/

找到答案
// use the WordPress tag wp_get_referer to assign the referring URL to the variable $referer
$referer = wp_get_referer();

// check if the URL is a specific one
if ( $referer == "whatever-your-previous-page-url-is" ) {

// if it is, do something

} else {

// if it isn't, do something else

}