我实际上是Joomla的新手,我需要从外部php脚本获取文章的SEF路径。我觉得我已经接近了,但是有些东西对我来说不起作用。我作为示例的初步代码是:
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe = JFactory::getApplication('site');
$mainframe->initialise();
$articleId=80;
$url = JRoute::_("index.php?option=com_content&view=article&id=".$articleId);
使用此方法,JRoute返回路径/component/content/article?Id=80&Itemid=437
。做完一些研究后,我读到我必须包含菜单的“ itemId”。我不确定JRoute返回给我的是“ 437”,还是我应该单独获取它。根据我的阅读,获取菜单项ID的一种方法是:
$link = 'index.php?option=com_content&view=article&id='.$articleId ;
$menu = $mainframe->getMenu();
$menuItem = $menu->getItems( 'link', $link, true );
$Itemid = $menuItem->id;
但是$Itemid
返回空。我很高兴有人可以指导我。我需要的是构建文章的SEF路径,而不管其菜单结构如何。我的最终需要是根据外部php脚本的articleID创建指向该文章的链接。