wordpress函数get_option(‘sticky_posts’)与置顶文章例子

这里部落先说一下,wordpress获取置顶文章列表的方法,其产只要一小段代码就能搞定,内容如下:
补充说明一下,部落之前的主题,就是使用的下面的代码:

<?php
        $sticky = get_option('sticky_posts');
        rsort( $sticky );
        $sticky = array_slice( $sticky, 0, 1);
        query_posts( array( 'post__in' => $sticky,'posts_per_page' => 2,
                                   'caller_get_posts' => 1 ) );
        if (have_posts()) :while (have_posts()) : the_post();?>
<h3><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>

这段代码很好理解,我们就是通过query_posts来获取文章的,这个函数的作用就是对文章进行检索、挑选、排序,在其后的LOOP循环中使用经过挑选、排序的文章.
参数用一个数组的形式放在$query_post中,关键的参数为'post__in' =>get_option('sticky_posts')和'caller_get_posts' => 0。

'post__in' => get_option('sticky_posts')

确定了该LOOP调用的是置顶文章列表。'caller_get_posts'的作用是排除非指定性文章,即除了置顶文章之外,不显示其他的文章.
不添加的情况下,如果置顶文章条目不足'posts_per_page'规定的值,会用最新文章替补完整.
部落操作后,下图中第一篇文章为置顶过的文章,第二篇为最新文章.


部落的作法其实很简单,只是去掉了一段代码,那就是

'caller_get_posts' => 1 

当您的站内没有文章置顶时,则默认显示最新文章.这种情况,我们一般主要是因为广告原因来调整.
当然,在您查看具体的效果时,一定要注意清除缓存,特别是安装了WP Super Cache插件的朋友.
另外,检查当前文章是否置顶用is_sticky($post_id) 不带参数时,主要用来在循环输出文章列表中时,用来判断当前$post_id是否是置顶文章;带参数则是判断给定的$post_id是否是置顶文章.
再实例说明一下,is_sticky(10) 是判断 $post_id为 10的文章是否是置顶文章,而不是说所有置顶文章中post_id为 10的置顶文章.
小结
今天因为这样一个小问题,纠结了好一会儿,其实要解决,也就是一分钟的事情,这里自己做个笔录,以给下次好查询.

时间: 2024-12-11 16:35:20

wordpress函数get_option(‘sticky_posts’)与置顶文章例子的相关文章

wordpress 文章首页置顶实现例子

文章首页置顶实现例子-wordpress文章置顶"> wordpress置顶的数据保存在options表的option_name等于sticky_posts,option_value的字段中.数据经过了序号化之后保存的,即使用php函数serialize 在wordpress里调取方法 $sticky = get_option('sticky_posts'); 目前的首页置顶的代码目前我的首页置顶代码如下,我感觉很多模板都会有这个问题  代码如下 复制代码 $sticky = get_op

wordpress中is_sticky()置顶文章方法参数与用法

[说明] 检查当前文章是否置顶.返回值TRUE 或者 FALSE. [用法] <?php is_sticky($post_ID); ?> [参数] $post_ID (string) (optional) 文章 ID 默认: None 返回值 (boolean)True,或 false. [示例] is_sticky(); // 任意置顶文章被显示. is_sticky('17'); // 当ID为17的文章被显示. [源文件] is_sticky() 位于 wp-includes/post.

WordPress置顶文章与非置顶文章的列表分离

置顶文章归置顶的样式,在循环文章列表中排除置顶文章. Case1置顶列表解决方案: 在要插入置顶文章列表的地方写入一下语句:  代码如下 复制代码 <?php query_posts(array('showposts' => 1, 'post__in' => get_option('sticky_posts'), 'caller_get_posts' => 1 )); if (have_posts()) : while (have_posts()) : the_post(); ?&

WordPress给置顶文章添加更新时间

一般置顶的都不会是最新的文章,所以开始动手研究,显示对post的属性做了研究,发现如下代码可是显示最后更新时间:    代码如下 复制代码 <?php $id=//这里是文章的ID $post_modified = get_post($id)->post_modified; echo $post_modified;//输出当前id文章的最新修改时间 ?> 可以通过get_post($id)->获取的信息有: post_author:(整数)文章作者的编号 post_data:(字符

如何让wordpress自定义文章类型支持置顶功能

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 最近开发一个wordpress淘宝客主题,应客户要求,需要做一个店铺推广.这个店铺推广需要上首页,也就是说只有提供了赞助的的店长的链接才可以在首页展示.为了达到这个目的,笔者提供的解决方案是采用置顶功能.店铺采用wordpress自定义文章类型.然而问题来了,wordpress自定义文章类型默认并不支持置顶功能.为此我们可以通过一个插件来实现

wordpress文章置顶不改变文章排序实现方法

文章置顶不排序 query_posts方法的代码如下:  代码如下 复制代码 <?php $display_categories = get_option('swt_cat_exclude'); $limit = get_option('posts_per_page'); $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $sticky = get_option('sticky_posts'); $args = arr

wordpress只在某个分类菜单下置顶指定的文章

很多时候,我们的wordpress站点,可能需要将某篇文章进行置顶,如果是全局的话,直接在文章页面里编辑之后进行置顶操作就行了,但如果想只在一个分类菜单下进行置顶操作的话,目前就需要借助插件或者修改代码来实现了.比如部落网站中有一篇文章,在网站SEO这个菜单下,想让这篇文章置顶显示,就是这样一个意思了. 如果您需要用插件的话,直接安装WP-Sticky即可实现这个功能. WordPress网站分类列表不显示置顶文章,内容丰富栏目较多的网站会对推荐的文章进行置顶显示,以便访客打开该分类时第一时间能

WordPress让指定的分类与指定文章置顶

但现实中其实是,我们常常把首页弄成CMS模式,让最新的文章被用户看到,而到了分类页时,为了突出某些文章的重要性,又把它置顶. 为了解决分类标签页不能置顶的问题,我特意找了一下,露兜在一篇文章中总结出了这个解决方案.但这个方案存在一个问题,它让所有的归档页都能实现把置顶文章放在最前面,问题就来了,例如按时间归档的页面,读者当然想知道这个月份的文章发文顺序,如果置顶,那就不伦不类了. 还有一个问题,能不能做到有些分类可以置顶,有些分类不置顶,可以自己控制呢?答案是肯定的,下面的代码可以解决这个问题.

wordpress 函数 query_posts()用法详解

query_posts函数在WordPress主题中是用于控制哪些文章可以出现在主循环中,可能说主循环很多人都不懂,那么举个例子,首页.存档页的这些文章(包括分页中的)都是在主循环中的.在不使用query_posts函数控制的情况,首页.存档页等都是按照文章的发布时间列出你博客上所有已发布的文章,而如果你想定义哪些文章可以显示,哪些文章不显示,文章按照什么样的方法排序等,那么你就要用到query_posts函数了. 让某分类的文章不显示和显示 如果你不想让某分类的文章出现在主循环中,那么你可以使