首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Expressionengine PHP调用

Expressionengine PHP调用
EN

Stack Overflow用户
提问于 2013-02-20 19:46:02
回答 2查看 85关注 0票数 0

我编写了下面的PHP函数,根据片段3的URL返回当前类别。

代码语言:javascript
复制
<?php
 $this->EE =& get_instance();
 $seg3 = $this->EE->uri->segment(3);
 $categoriess = getCategory($seg3);

function getCategory($string)
   {
     switch ($string)
       {
         case "test1": return '16';
         case "test2": return '52';
         case "test3": return '18';
         case "test4": return '29';
         case "test5": return '37';
       }
     return '11';
   }
 ?>
 <?php echo $categoriess; ?>

好吧,这个函数完成了这项工作,并返回正确的数字。然后,问题出在调用类别标记中返回的号码。

代码语言:javascript
复制
{exp:channel:entries channel=“news” dynamic=“no” category=”<?php echo $categoriess; ?>” orderby=“entry_date” disable=“member_data|trackbacks” sort=“desc” limit=“5”}

在我看来一切都是正确的,但它就是不能工作…我真的很感谢你的帮助!

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2014-09-04 23:02:35

检查您的解析顺序:在模板首选项中将"PHP parsing Stage“设置为"Input”。

默认设置是"Output",如果您想要从EE短码中获取一个值,并将其作为变量提供给PHP,那么这个设置非常有效。

但在本例中,您希望在PHP中运行一个函数,然后将返回的结果“提供”给EE。

因此,在这种情况下,EE将从PHP获取“输入”,这意味着 preferences 下的PHP解析阶段必须将特定的模板(不是一般首选项或其他任何地方)设置为Input。

我知道这是一个老问题了,但我希望有人能用上这个答案。我只是浪费了一整天的时间来做一些事情,如果我想先检查解析顺序,那么只需要不到5分钟的时间。

票数 1
EN

Stack Overflow用户

发布于 2013-02-20 19:56:10

代码语言:javascript
复制
<?php
    function getCategory($string)
    {
         $data = array(
           "test1" => 16,
           "test2" => 52,
           "test3" => 18,
           "test4" => 29,
           "test5" => 37
         ) ;
         return (isset($data[$string])) ? $data[$string] : 11 ;
     }
   $this->EE =& get_instance();
   $seg3 = $this->EE->uri->segment(3);
   $categoriess = getCategory($seg3);
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14979072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档