繁体   English   中英

Joomla K2-通过ID获取文章链接(SEF)

[英]Joomla K2 - Get article link (SEF) by ID

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

我考虑这样的事情:

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

<a href="<?php echo $link; ?>">Article link</a>

更新我的代码是这样(用Rikesh代码更新):

Mysql query: "SELECT id, title, extra_fields FROM xxxxx_k2_items WHERE catid = ".$catid

$n=0; //counter
while($row = mysql_fetch_array($result)){
  $titles[$n] = $row['title'];
  $links[$n] = JRoute::_(ContentHelperRoute::getArticleRoute($row['id'], $catid));
  $n++;
}

好的,现在这将检​​索/joomla/index.php/currentpage?id=4类的/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类别表中的信息,这是一个示例

$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++;
}

暂无
暂无

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

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