Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Joomla K2-按ID获取文章链接(SEF)_Php_Joomla_Joomla K2 - Fatal编程技术网

Php Joomla K2-按ID获取文章链接(SEF)

Php Joomla K2-按ID获取文章链接(SEF),php,joomla,joomla-k2,Php,Joomla,Joomla K2,如何通过文章ID检索文章的SEF链接 我想到这样一件事: $link = get_link(34); // where 34 is the article ID <a href="<?php echo $link; ?>">Article link</a> 好的,现在它检索像/joomla/index.php/currentpage?id=4这样的链接,其中4是正确的id,但链接不起作用!它翻错了一页。我的疑问是:你的代码也适用于K2文章?因为我使用的是K

如何通过文章ID检索文章的SEF链接

我想到这样一件事:

$link = get_link(34); // where 34 is the article ID

<a href="<?php echo $link; ?>">Article link</a>
好的,现在它检索像
/joomla/index.php/currentpage?id=4这样的链接,其中4是正确的id,但链接不起作用!它翻错了一页。我的疑问是:你的代码也适用于K2文章?因为我使用的是K2文章,而不是默认的joomla文章。编辑:是的,我已经检查了我的疑问,你的代码通过ID链接到Joomla文章,但是我使用的ID是用于K2文章的!

注意:我需要SEF的链接,你应该包括K2路线

require_once(JPATH_SITE.DS.'components'.DS.'com_k2'.DS.'helpers'.DS.'route.php');
您应该同时更新mysql查询和PHP代码,因为您还需要来自k2 categories表的信息,下面是一个示例

$db = JFactory::getDBO();
$query = '
    SELECT 
        a.id AS id,
        a.extra_fields AS extrafields,
        a.catid AS catid,
        a.title AS title,
        a.introtext AS introtext,
        a.alias AS alias,
        c.alias AS catalias
    FROM 
        #__k2_items AS a 
        LEFT JOIN #__k2_categories AS c ON ( a.catid = c.id ) 
        WHERE a.published = 1 AND a.catid = '.$catid;
$db->setQuery($query);
$articles = $db->loadObjectList();
$n=0;
foreach ($articles as $article) {
    $titles[$n] = $article->title;
    $links[$n] = K2HelperRoute::getItemRoute($article->id.':'.urlencode($article->alias),$article->catid.':'.urlencode($article->catalias));
    $n++;
}

如果您正在使用K2文章,请使用K2路由器。有关更多信息,请参阅K2 content module.ok。这是可行的,但看起来仍然不“好”。我需要这样的代码:odziecku/ciaza-I-porod/porod/item/86-6-rad-przed-wspolym-porodem,但这段代码会生成这样的代码:odziecku/index.php?option=com_k2&view=item&id=156:6-rad-przed-wspolym-porodem&Itemid=190缺少一些东西。好的,我知道。它应该是linke this:$links[$n]=JRoute::(K2HelperRoute::getItemRoute($article->id.:')。urlencode($article->alias),$article->catid.:')。urlencode($article->catalias));
$db = JFactory::getDBO();
$query = '
    SELECT 
        a.id AS id,
        a.extra_fields AS extrafields,
        a.catid AS catid,
        a.title AS title,
        a.introtext AS introtext,
        a.alias AS alias,
        c.alias AS catalias
    FROM 
        #__k2_items AS a 
        LEFT JOIN #__k2_categories AS c ON ( a.catid = c.id ) 
        WHERE a.published = 1 AND a.catid = '.$catid;
$db->setQuery($query);
$articles = $db->loadObjectList();
$n=0;
foreach ($articles as $article) {
    $titles[$n] = $article->title;
    $links[$n] = K2HelperRoute::getItemRoute($article->id.':'.urlencode($article->alias),$article->catid.':'.urlencode($article->catalias));
    $n++;
}