繁体   English   中英

记住为下一页

[英]Remember slug for next page

首先,对您的长时间阅读感到抱歉。 但是我希望这能更好地解释我正在尝试做的事情...

我可能正在尝试无法完成的事情。 但是我还是会问这个问题。

我在此自定义帖子类型中有一个自定义帖子类型(行为),我有我的beachevents-posts。 循环中存在所有循环行为,不知道这是否重要,但是可以。

我也有一些地点,例如Noord Holland,Zuid Holland和Flevoland。 位置是一种自定义分类法(locations_noord_holland,locations_zuid_holand等)

分类法locations_noord_holland遍布荷兰北部的城市,例如阿姆斯特丹。

当您转到首页->位置->北荷兰-阿姆斯特丹URL是:home.nl/locaties/noord-holland/amsterdam(其中,阿姆斯特丹是Slug)。

在此屏幕中,有一些关于阿姆斯特丹海滩事件的文字。 它还使用以下代码获取该子弹Amsterdam:

<?php $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); echo $term->name; ?>

以“ Amterdam的Beachevents”作为标题返回。

现在确定代码部分。 当您单击阿姆斯特丹的beachevent时,它将链接您到home.nl/activiteiten/your-beachevent/(activiteiten是从自定义帖子类型beachevent重写的自定义帖子类型)

在该页面上有一个隐藏的联系表单,可以使用fancybox激活。 使用此代码:

<a class="my-subject fancybox-offerte" href="#offerte" dataTitle="<?php echo $subject; ?>"><div class="btn btn-04">Offerte aanvragen</div></a>

那里有dataTitle,因此联系人表单7知道选择了什么beachevent,并自动将联系人表单中的该值设置为“ beachevent”,这与“ Contactform 7中的Dynamic Content插件”结合使用。

所以,这解释了很多。 现在,我想让Wordpress记住用户来自何处(在本例中为Amsterdam),然后使用动态内容插件将该城市添加到联系表单中。

我所知道的是,我必须告诉Wordpress记住the的阿姆斯特丹(或Noord Holland,Zuid Holland或Flevoland的任何其他城市)。 并以任何形式存储此值,以便联系表单知道将这些信息放在何处。

在联系表格中,我可以添加以下内容:

<li class="low-li">[dynamictext text-uitje id:txt-uitje class:dy-text "CF7_ADD_CITY"]</li>

然后将以下代码添加到我的功能文件中:

function cf7_add_city() {
     global $post;
         $city = get_field('stad');
            return $city;
}

add_shortcode('CF7_ADD_CITY', 'cf7_add_city');

但这仅在我将城市设置为某些高级自定义字段并获得其价值时才有效。 但这并没有让Wordpress记住上一页中的(动态)提示。

谁能帮我这个? 这是可能吗?

您可以在每次加载该页面时在$_SESSION设置。

$_SESSION似乎可以,您可以在每个与城市有关的页面中设置类似$_SESSION['slug] = 'cityname' ,或者如果您希望表单不根据上一次访问的城市页面来推断城市,而只查找在结束表单之前,请尝试使用$_SERVER['HTTP_REFERER']来检查上一页的网址

谢谢萨米詹和基耶。 我知道了。 对于任何人,怎么知道? 这是我的代码:

首先在header.php文件中打开SESSION。

然后(如果您需要子弹,则可以使用任何东西)将其添加到页面中存储会话的内容:

$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );

然后,页面上的任何内容都会存储该条:

<?php $_SESSION["stad"] = $term->name; ?>

从这里开始,您可以在任何地方回显它:

<?php echo $_SESSION["stad"]; ?>

玩得开心..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM