WordPress Loop:內容顯示的中流砥柱
已發表: 2020-03-24
在您的 WordPress 主題上顯示博客文章的代碼在 WordPress 用戶中被廣泛稱為 WordPress 循環和 WordPress Codex 上的循環。
Loop 被認為是 WordPress 主題中最重要的部分。 它負責根據參數在當前頁面上顯示博客文章。
在本指南中,我們將通過示例介紹 WordPress Loop 的基礎知識,以便您清楚地了解代碼的作用、如何自定義它以及它在 WordPress 主題中的位置。
- WordPress 循環的邏輯
- 文章標題超鏈接
- 使用循環顯示內容
- 條件標籤的使用
- WordPress 中的 5 個有用循環
WordPress 循環的邏輯
從邏輯開始,讓我們看一下循環的基本代碼。 然後我們可以遍歷每一行來理解它。
//檢查帖子是否存在,如果存在則執行while循環
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
//在此處顯示帖子代碼
<h2><?php the_title() ;?></h2> //顯示文章標題
<?php the_post_thumbnail(); ?> //顯示帖子縮略圖AKA特色圖片
<?php the_excerpt(); ?> //顯示文章摘錄
<?php endwhile; else : ?> //結束while循環
<p><?php _e('沒有帖子可顯示。'); ?></p>
<?php endif; ?> //結束If語句在循環中,我們有一個“if”語句和一個“while”循環。 “if”語句檢查是否有可顯示的帖子,“have_posts”WordPress 函數是一個布爾函數,它返回真或假值。 如果找到帖子,則返回“true”並且代碼繼續執行“while”循環。
“while”循環還具有“have_posts”WordPress 功能。 它返回“true”,等於我們將博客文章設置為在 WordPress 管理中顯示的次數。
然後代碼繼續執行 WordPress 函數“the_post”。 此函數設置帖子,然後我們可以使用更多函數從帖子中提取元素。 在上述示例中,我們使用了:
the_title -> 獲取帖子標題
the_post_thumbnail -> 獲取博客文章的特色圖片
the_excerpt -> 獲取博客文章的摘錄
當然,我們可以使用更多函數從帖子中提取元素,我們將介紹一些示例。
文章標題超鏈接
您可能已經看到博客文章標題包含指向實際文章的鏈接。 單擊超鏈接後,您將導航到博客文章的單頁視圖。 大多數主題都有一個名為 single.php 的文件,當您查看單個帖子時會調用該文件。
我們將使用“the_permalink” WordPress 函數並附上“the_title”函數來鏈接它。
例子:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title() ;?></a></h2>
<?php the_post_thumbnail(); ?>
<?php the_excerpt(); ?>
<?php endwhile; else : ?> //結束while循環
<p><?php _e('沒有帖子可顯示。'); ?></p>
<?php endif; ?>使用循環顯示內容、作者、日期和類別
您可能已經看過許多博客,其中的帖子顯示作者姓名、博客主頁面的全部內容以及日期和類別。 您可以使用以下函數輕鬆地在循環中顯示所有這些有用的詳細信息:
the_content – 顯示完整的博客內容
then_author – 顯示作者姓名
the_time – 顯示時間和日期
the_category – 顯示帖子的類別
你的循環看起來像
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2><?php the_title() ;?></h2>
<?php the_author(); ?> <?php the_time('F j, Y'); ?> <?php the_category(); ?>
<?php the_post_thumbnail(); ?>
<?php the_content(); ?>
<?php endwhile; else : ?> //結束while循環
<p><?php _e('沒有帖子可顯示。'); ?></p>
<?php endif; ?>條件標籤的使用
有許多標籤用於檢查條件,但幸運的是,在 WordPress 中,這些標籤幾乎不言自明。 例如,“is_home”檢查當前視圖是否是主頁(博客的主頁)。 我們可以使用條件標籤來啟動某些循環。
例如,如果我們將循環包含在檢查當前頁面是否為主頁的“if”條件之間,那麼循環將僅在主頁上執行。
<?php if (is_home()) { //如果當前頁面是主頁面則返回true
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2><?php the_title() ;?></h2>
<?php the_post_thumbnail(); ?>
<?php the_excerpt(); ?>
<?php endwhile; 其他:?>
<p><?php _e('沒有帖子可顯示。'); ?></p>
<?php endif; ?>
} ?>我們可以在模板文件中使用條件標籤來控制執行哪個循環,從而在單個文件中擁有多個循環。
一些最常用的條件標籤是。
is_admin() – 當管理員登錄站點時返回 true。
is_single() – 如果正在查看單個帖子,則返回 true。
is_page() – 在某些頁面上返回 true,例如 is_page('about-us')
is_category() – 在類別頁面上返回 true,例如 is_category('wordpress')
is_tag() – 在標籤上返回 true。
is_author() – 檢查作者並返回 true。 例如 is_author('ahsan')
is_404() – 如果頁面不存在則返回true,可用於404頁面執行自定義循環
has_excerpt() – 如果帖子有摘錄,則返回 true。
WordPress 中的 5 個有用循環
讓我們來看看 WordPress 中的五個常見循環。
1. 在第一篇文章後插入廣告
如果您需要在第一篇文章後放置廣告,這是一種方法。
<?php if (have_posts()) : ?>
<?php $count = 0; ?>
<?php while (have_posts()) : the_post(); ?>
<?php $count++; ?>
<?php if ($count == 2) : ?>
//在此處粘貼您的廣告代碼
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php 其他:?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>只需粘貼您的廣告代碼,廣告就會放置在第一篇文章之後。

2. 獲取兩個日期之間的帖子
常見的用例之一是獲取特定時間段的帖子。 為此,請像這樣使用 WordPress 循環。
<?php 函數 filter_where($where = ') {
$where .= " AND post_date >= '2009-03-17' AND post_date <= '2009-05-03'";
返回 $where;
}
add_filter('posts_where', 'filter_where');
query_posts($query_string);
而 (have_posts()) :
the_post();
內容();
終了;
?>在代碼中,我們使用了一個包含 WHERE 子句的 SQL 函數。 然後將函數 filter_where 掛接到post_where()函數。
3. 列出即將發布的帖子
即將發布的帖子列表是讓訪問者在您的博客上忙碌的一種聰明方式。 這可以通過以下循環來實現。
<?php query_posts('showposts=10&post_status=future'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<span class="datetime"><?php the_time('j.F Y'); ?></span></p>
<?php endwhile;
else: ?><p>沒有安排未來的活動。</p>
<?php endif; ?>在上面的代碼中,我們使用 post_status 函數根據發布日期獲取帖子。
4. 創建存檔頁面
存檔頁面是列出您過去最好的帖子的好方法,這樣讀者仍然可以在您的博客上找到它們。
確保創建一個模板頁面來顯示存檔的帖子。
<?php
/*
模板名稱:檔案
*/
?>
<?php get_header(); ?>
<h2><?php $numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'");
if (0 < $numposts) $numposts = number_format($numposts); ?>
<h2><?php echo $numposts.' 自 2008 年 10 月 6 日起發布的食譜'; ?>
</h2>
<ul>
<?php
$myposts = get_posts('numberposts=-1&');
foreach($myposts as $post) : ?>
<li><?php the_time('m/d/y') ?>: <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
<?php get_sidebar(); ?>
<?php get_footer(); ?>5. 創建圖像循環
圖像循環是在類似畫廊的顯示中顯示您的博客文章的好方法。 每個帖子都顯示有圖像及其摘錄。
讓我們看看如何使用 WordPress Loops 做到這一點。
函數 catch_that_image() {
全球 $post, $posts;
$first_img = ';
ob_start();
ob_end_clean();
$output = preg_match_all('/<img.+src=['"]([^'"]+)['"].*>/i', $post->post_content, $matches);
$first_img = $matches [1] [0];
if(empty($first_img)){ //定義一個默認圖片
$first_img = "/images/default.jpg";
}
返回 $first_img;
}要在瀏覽器上顯示圖像,請添加以下代碼。
<?php
如果 (have_posts()) :
while (have_posts()) : the_post(); ?>
<a href="<?php the_permalink();?>" title="<?php the_title(); ?>" class="img-loop">
<img src="https://www.smashingmagazine.com/wp-content/uploads/images/wordpress-loop-hacks/<?php echo catch_that_image() ?>" alt="<?php the_title(); ? >" />
</a>
終了;
萬一;
?>WordPress have_posts函數用於檢查是否有任何數據可供循環使用。 如果數據可用,則返回 true。
循環是未來
將 Loop 視為 WordPress 主題的驅動引擎。 絕對有必要使用它來顯示帖子。 在這篇文章中,我已經解釋了基礎知識,有很多方法可以使用循環,我建議您查看循環的實際操作。
但是,如果 Loop 與高性能的快速 WordPress 託管媒體相結合,它會非常有效。 Cloudways 已為循環做好準備! 我們的測試表明 Cloudways 上的網站加載速度提高了 100%。
問:什麼是 WordPress 循環?
WordPress Loop 是一種使用指定參數動態顯示數據列表的技術。
問:WordPress 中的循環類型?
循環有多種類型,用戶可以使用預定義的 WordPress 函數根據自己的要求創建循環。
問:如何在 WordPress 循環中顯示任意數量的帖子?
為此,您需要在圍繞 WordPress 帖子運行循環時限制數量。
問:Loop 顯示什麼?
WordPress Loop 可以在網頁上顯示數據和圖像。
