如何链接到未设置为主页的博客?

时间:2012-12-17 作者:scottgemmell

我在这里有一个博客/www.mysite.com/section/news/ 只显示特定类别的新闻。当我使用wp_get_recent_posts()get_permalink($recent["ID"]) 链接位于此处/www.mysite.com/the-post-title/

<?php

    $args = array(
        \'numberposts\' => 2,
        \'category\' => 14 );


    $recent_posts = wp_get_recent_posts($args);
        foreach( $recent_posts as $recent ){
        echo \'<li><a href="\' . get_permalink($recent["ID"]) . \'" title="Look \'.esc_attr($recent["post_title"]).\'" >\' .   $recent["post_title"].\'</a> </li> \';
}
?>
如何将链接指向/www.mysite.com/section/news/the-post-title/

谢谢,非常感谢您的帮助。

当做

2 个回复
SO网友:Chip Bennett

默认情况下,永久链接是相对于站点的blog posts index (又名\'page-for-posts\', 又称作posts page). 您正在为静态页面使用自定义页面模板Section/News. 该静态页面与站点博客帖子索引无关。这就是为什么permalinks不引用该页面。

如果希望永久链接引用静态页面Section/News, 然后需要将该静态页面指定为posts page 在里面Dashboard -> Settings -> Reading.

如果您想在博客帖子索引中只显示特定类别的帖子,可以通过连接到pre_get_posts; e、 g.:

function wpse76370_filter_pre_get_posts( $query ) {
    if ( ! is_admin() && is_home() && $query->is_main_query() ) {
        // This is the main loop query for the blog posts index;
        // Only display a specific category
        $query->set( \'cat\', \'14\' );
    }
}
add_action( \'pre_get_posts\', \'wpse76370_filter_pre_get_posts\' );

SO网友:s_ha_dum

这些函数将根据您的永久链接设置返回URL。如果您只想更改发布的代码,只需手动构建URL即可。

<?php
    $args = array(
        \'numberposts\' => 2,
        \'category\' => 14 
    );
    $recent_posts = wp_get_recent_posts($args);
    $base_page = get_permalink(<id-of-news-subpage>);
    foreach( $recent_posts as $recent ){
        echo \'<li><a href="\' . $base_page . $recent[\'post_name\'] . \'" title="Look \'.esc_attr($recent["post_title"]).\'" >\' .   $recent["post_title"].\'</a> </li> \';
    }
?>
post_name 是post slug,WordPress使用它创建URL,因此它应该是一种非常安全的生成URL的方法。

结束

相关推荐

我如何才能让wp_list_ategories为其子类输出带有ategory-slug的li?

简单地说,我想改变wp_list_categories 此项的输出: <li class=\"cat-item cat-item-1\"><a href=\"http://mysite.com/category/articles\">Articles</a></li> <li class=\"cat-item cat-item-7\"><a href=\"http://mysite.com/category/design\">