wordpress is_sticky($post_id) 不帶參數時,主要用來在循環輸出文章列表中時,用來判斷當前$post_id是否是置頂文章,帶參數則是判斷給定的$post_id是否是置頂文章.
說明:檢查當前文章是否置頂,返回值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.php.
- /**
- * Check if post is sticky.
- *
- * Sticky posts should remain at the top of The Loop. If the post ID is not //開源軟件:Vevb.com
- * given, then The Loop ID for the current post will be used.
- *
- * @since 2.7.0
- *
- * @param int $post_id Optional. Post ID.
- * @return bool Whether post is sticky.
- */
- function is_sticky( $post_id = 0 ) {
- $post_id = absint( $post_id );
- if ( ! $post_id )
- $post_id = get_the_ID();
- $stickies = get_option( 'sticky_posts' );
- if ( ! is_array( $stickies ) )
- return false;
- if ( in_array( $post_id, $stickies ) )
- return true;
- return false;
- }
這里要舉例說明的是:
is_sticky(10) 是判斷 $post_id為 10的文章是否是置頂文章,而不是說所有置頂文章中post_id為 10的置頂文章,之所以會有后者錯誤的理解,也是自己看了官方對于 is_sticky($post_id)方法用法文檔比較模糊的介紹,其實細究起來,“所有置頂文章中post_id為 10的置頂文章” 這種判斷也是多余的,直接 $post->id==10 或 get_the_id()==10 判斷當前文章$post_id是否等于10 就好了.
這里還得感謝下友鏈中的tiandi兄在本站中留言中提醒說不存在“is_sticky($post_ID)中參數失效”的問題,指正自己對wordpress is_sticky($post_id)方法的錯誤理解.
新聞熱點
疑難解答
圖片精選