問題描述
我剛剛進入後期格式的概念,並且想知道為什麼有三個功能中的兩個從後期格式”API” 提供絕對相同的功能。考慮以下兩個概念 (A 與 B):
if ( have_posts() )
{
while ( have_posts() )
{
the_post();
// A) has_post_format
if ( has_post_format('format') )
{
the_excerpt(); // some special formating
}
// VERSUS:
// B)
if ( get_post_format( $GLOBALS['post']->ID ) == 'format' )
{
the_excerpt(); // some special formating
}
} // endwhile;
} // endif;
有人可以解釋一下,為什麼有這兩個功能,而不是前。 get_post_format?如果你能給我一些例子,其中一個不能夠做另一個功能的事情,我會特別高興,並+1 。
最佳解決方案
Edit
has_post_format()需要一個字符串 $format 作為第一個參數; 這意味着它只能用於測試顯式的 post-format 類型:
if ( has_post_format( $format ) {
// Current post has the $format post format;
// do something
}
要確定帖子是否有任何郵件格式,請使用 get_post_format(),如果當前帖子沒有分配的帖子格式,則會返回 false 。
if ( false != get_post_format() ) {
// Current post has a post format;
// do something
}
請注意,”standard” 不是實際的 post-format,而是一個沒有分配帖子格式的帖子的佔位符。在內部,WordPress 返回 false 而不是 post-format-standard,因此,要查詢”standard” post-format 類型,您只需使用 if ( false == get_post_format() )。
Original
has_post_format()返回一個 BOOLEAN 值,它對條件有用,例如:
if ( ! has_post_format() ) {
// I'm a standard-format post; do something
}
要麼
if ( has_post_format( array( 'gallery', 'image' ) ) {
// I'm a gallery or image format post; do something
}
get_post_format()返回當前帖子格式類型的字符串值,這在幾種方式中是有用的。最強大的之一是根據郵政格式調用不同的模板部分文件,例如:
get_template_part( 'entry', get_post_format() )
這將包括,例如”entry-aside.php” 為標準格式,或”entry.php” 為標準格式。
次佳解決方案
以下部分是不正確的,我有 created a ticket 要求這個增強。
has_post_format()更靈活,因為它建立在基於 is_object_in_term()的 has_term()上。這意味着您可以傳遞一系列的 Post 格式,如果帖子具有這些格式之一,它將返回 true 。
if ( has_post_format( array( 'aside', 'video' ) ) {
// It's an aside or a video
}
原來的規格票 already mentioned 都是 get_post_format()和 has_post_format(),也許是因為它建立在既具有兩個功能的分類系統上?
第三種解決方案
簡單的説, has_post_format() 返回一個在 IF 語句中有用的 true /false(Boolean) 值,而 get_post_format() 返回 post 格式 (如果存在),如果沒有,則返回 NULL 或 false 。使用布爾值是一個很好的乾淨方法,確保您的條件始終以您期望的方式運行,並且 has_post_format() 功能允許良好的簡單的短期條件:
if ( has_post_format() ) {
//yes we do
} else {
//no we do not
}
if ( !has_post_format() ) {
//no we do not
} else {
//yes we do
}
此外,這只是符合其他現有的 WordPress 功能。雖然您的選項 B 可以完成任務,但它需要比 above-average WordPress 用户熟悉的更專業的知識。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。