你现在的位置:首页 > PHP网站建设知识库 > WordPress > 正文

如何调用wordpress置顶文章

WordPress后台提供了置顶文章的功能,在发布文章时有选项,勾选时就可以置顶,这个操作很简单。

\

今天我们在这里探讨的是在wordpress开发中,如何写程序来调用置顶文章,并让它按照我们想要的格式输出。

我们先了解一上WordPress置顶文章重点函数

关于置顶文章WordPress有两个常用的函数

  • is_sticky():判断文章是否是置顶的,是就返回true,不是就返回false
  • get_option('sticky_posts'): 获取置顶文章ID,返回包含各置顶文章ID的数组

对于这两个函数怎么使用下面给出两个具体例子

置顶文章例子1:

首页展示文章时,如果是置顶文章就全文输出
方法简介:在loop循环时,通过 is_sticky()判断是否是置顶文章
是的话就设置全局变量$more=1;然后调用the_content();就是全文输出了
否则不是置顶文章的话就设置全局变量$more=0;然后调用the_content('更多...');就是截取<--more-->标签后的输出

<?php if (have_posts()) : ?> 
<p>分章列表如下</p> 
<ul> 
    <?php while (have_posts()) : the_post();  
        if (is_sticky()): 
            global $more;    // 设置全局变量$more 
            $more = 1; 
    ?> 
    <li> 
        <h2>[置顶]<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a><h2/> 
        <p><?php the_content(); ?></p> 
    </li> 
    <?php else: 
            global $more;   
            $more = 0; 
    ?> 
    <li> 
        <h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a><h2/> 
        <p><?php the_content('阅读更多'); ?></p> 
    </li> 
    <?php endif; ?> 
<?php    endwhile; ?> 
</ul> 
<?php else: ?> 
<h2>没有找到相应文章</h2> 
<?php endif; ?> 

置顶文章例子2:

一次性把置顶文章全部找出来,然后用列表的方法呈现

方法简介:通过get_option('sticky_posts')函数把置顶文章id全部找出来,再通过query_posts()函数对这部分id的文章循环列表输出

<ul> 
<?php 
    $sticky = get_option('sticky_posts'); 
    rsort( $sticky );//对数组逆向排序,即大ID在前 
    $sticky = array_slice( $sticky, 0, 5);//输出置顶文章数,请修改5,0不要动,如果需要全部置顶文章输出,可以把这句注释掉 
    query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) ); 
    if (have_posts()) :while (have_posts()) : the_post();     
?> 
<li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></li> 
<?php    endwhile; endif; ?> 
</ul>