如何在首页上只显示一个特定类别的帖子

时间:2013-09-19 作者:MARS

在我的头版,我有一个3列块下面的折叠部分。最后一个专栏和第三个专栏是我的艺术类博客中最近一篇文章的摘录,希望在这里之前,这篇文章在解释舞台设置方面是清晰的。

这就是我解决问题的方法:

我创建了一个名为“内容艺术博客”的php文件,我使用此php代码将其拉入我的首页文件

<?php get_template_part( \'content\', \'art-blog\' ); ?>
在实际内容艺术博客上。然而,到目前为止,我制定的解决方案如下:

<div class="col-block-last">

<h2><span class="bold">art</span> <span class="font-condensed">blog</span></h2>

<?php get_post( $id, $output, $filter ); ?>

<?php
  $linkdata = array(
  \'link_name\' => \'art\',
  \'link_url\' => \'http://domain.com/categories/art/\'
  );
?>

<a href="http://dcio:8888/category/art/">Read more</a>

注意:我刚刚在本地目录文件路径中放置了实际的A标记(因为我是在MAMP上开发的),但我意识到一旦站点上线,这将不起作用。

因此,问题有两个方面:

1) 如何将特定类别的1篇文章摘录拉入此区块部分

2) 我如何链接到这篇文章(或者这篇文章是否会与摘录一起加入,这意味着我不必从一开始就把它作为标签?)

我浏览了这些函数,以了解实际存在的功能,以及我可以使用这些函数做什么,但我是一个傻瓜,需要时间来理解所有这些函数的功能,从而正确解释如何使用它们来解决问题。

就我而言,我还不知道我还不知道什么。

谢谢,希望这是可以理解的。

1 个回复
SO网友:Eric Allen

我想我理解你的问题,所以下面是我如何实现我认为你想要做的事情。

该函数的设置使您可以向其发送任何类别的slug或ID,以及希望从该类别中检索的帖子数量。

EDIT: 我删除了the_permalink() 因为我的意思是get_permalink() 但被错误地提到the_permalink() 相反

<?php function wpse_114835_cat_latest_post($cat = null, $posts = 1) {
    //check for valid number of posts
    if(!is_int($posts)) {
        $posts = 1;
    }

    //set number posts
    $args = array(
        \'numberposts\' => $posts,
        \'nopaging\' => 1
    );

    //check what kind of category info we were sent
    if(isset($cat)) {
        //category id
        if(is_int($cat)) {
            $args[\'cat\'] = $cat;
        //category slug
        } elseif(is_string($cat)) {
            $args[\'category_name\'] = $cat;
        }
    }

    //get posts specified
    $cat_posts = get_posts($args);

    //return posts object
    return $cat_posts;
} ?>
您可以将该功能添加到主题的functions.php 文件,然后您可以从模板文件中调用它,如下所示:$art_posts = wpse_114835_cat_latest_post(\'art\');.

Getting permalink: 要获取永久链接,请将post ID发送到get_permalink() 功能,如get_permalink($art_posts[0]->ID);

Getting excerpt: 摘录是post对象的一部分echo $art_posts[0]->post_excerpt;

如果要使用[...] 最后,或者通过主题或插件为摘录设置的任何过滤器来运行它,您需要a)将此帖子设置为新的全局$post 对象,以便可以使用以下方法the_excerpt() 或者b)创建您自己的摘录修改方法,该方法将精简并附加您想要的任何内容。

使用上面的HTML,您的模板将如下所示:

<div class="col-block-last">
    <h2>
        <span class="bold">art</span> <span class="font-condensed">blog</span>
    </h2>

    <?php $art_posts = wpse_114835_cat_latest_post(\'art\');

    echo $art_posts[0]->post_excerpt; ?>

    <a href="<?php echo get_permalink($art_posts[0]->ID); ?>">Read more</a>
</div>

结束

相关推荐