WordPress Loop:內容顯示的中流砥柱

已發表: 2020-03-24
關注@Cloudways

在您的 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 可以在網頁上顯示數據和圖像。