我正在尝试再次围绕上下文过滤器展开讨论!我曾经用过它,但是我又完全陷入了困境。这是我想做的事情:
- 生成带有分类术语插入到此克隆页面中的克隆内容节点页面。
例如:EXAMPLE.com/white-shoes/blue
当用户到达/ white-shoes页面时,它将显示面向白色的原始节点页面。现在,如果用户落在/ white-shoes / blue上,它将显示相同的节点页面,但是这次将重写所有正文内容,将白色替换为蓝色。
在“ 视图”中,我必须创建一个页面显示,其路径为:%/%
现在,我将创建一个上下文过滤器来检索nid。我添加Content:nid作为上下文过滤器。我选择提供默认值,然后输入以下PHP代码:
$ x = drupal_lookup_path('源',arg(0));
$ y = explode('/',$ x);
返回$ y 1 ;
该PHP代码基本上将URL的/ white-shoes部分转换为NID。但它不起作用。我通过终端通过drush ev测试了代码,确实得到了返回的结果,所以我知道它可以工作。
我对分类术语名称进行了相同的操作,并为此添加了上下文过滤器。这次,我选择“ 提供默认值”并选择“ 来自URL的原始值”,然后选择第二个参数。
如您所见,当我为上下文过滤器输入预览值:AAA / BBB / CCC时。我的默认值被忽略。它本来应该抓住第二个参数,但是只有第一个。查看SQL语句WHERE,当它应该是BBB时,它将得到AAA。
所以问题是我在做错什么,还是对我想要完成的事情有更好的解决方案?