首頁  >  文章  >  web前端  >  探索 WordPress 中的條件標籤:從 1 到 13

探索 WordPress 中的條件標籤:從 1 到 13

WBOY
WBOY原創
2023-09-15 10:01:031067瀏覽

探索 WordPress 中的条件标签:从 1 到 13

在本系列的第一部分中,我們了解了條件標籤的基礎知識 - 它們是什麼、如何使用它們以及條件標籤派上用場的一些場景。

在第二部分中,我們將開始審查 13 個條件標籤,並在五篇文章(包括這篇文章)中,我們將完成 Codex 中記錄的所有 65 個條件標籤。如果您還沒有看過第一部分,請務必查看。

我們開始吧!

1。檢查我們是否在「部落格文章索引頁」: is_home()

這個命名不佳條件標記檢查部落格文章索引頁面是否正在顯示。在過去,當 WordPress 只是一個「部落格平台」時,「首頁」意味著您最新部落格文章的清單。但在 WordPress 發展成內容管理系統之後,is_home() 這個名字就有點過時了。

接受的參數

此條件標記不接受任何參數。

is_home()的使用範例

假設您想在主頁上向訪客致意。這是你要做的:

<?php

if ( is_home() ) {
    
    _e( 'Welcome to my great blog!', 'translation-domain' );
	
}

?>

2。檢查目前主題是否為子主題:is_child_theme()

使用 WordPress 進行開發時,您可能需要檢查是否正在使用子主題。如果是這種情況,條件標籤 is_child_theme() 會在是否使用子主題時傳回 TRUEFALSE 來協助您。

接受的參數

此條件標記不接受任何參數。

3。檢查帖子是否屬於給定類別:in_category()

在 WordPress 專案中,您可能希望不同類別的貼文有不同的行為。例如,您可能想要為某些貼文新增類,或從一般貼文清單中完全隱藏這些貼文。條件標籤 in_category() 可讓您確定在某個或多個類別中發佈的貼文。

接受的參數

此條件標記有兩個參數:

  • $category (陣列/字串,必要):類別 ID、名稱、slug 或這些的陣列。 (預設:無)
  • $post (物件/整數,可選):要檢查的貼文(ID 或物件)。 (預設:當前帖子)

in_category() 的使用範例

假設您有一個包含很多類別的博客,其中一個是“公告”,並且您希望更新在其他帖子中彈出,因此您想要向帖子包裝器添加一個自定義類別。這是你要做的:

<?php

// Standard Loop stuff.
if ( have_posts() ) {

    while( have_posts() ) {
		
		the_post();

		if ( in_category( '7' ) ) { ?>
			
			<div class="post post-announcement">
			
		<?php } else { ?>
		
			<div class="post">
			
		<?php } ?>
		
				<h2>
    				<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                </h2>
				
				<div class="post-content">
					<?php the_content(); ?>
				</div>
		
			</div><!-- .post -->

	<?php } 
    	
} else {
	
	echo '<p>' . __( 'Sorry, no posts matched your criteria.', 'translation-domain' ) . '</p>';
	
}

?>

4。檢查「頁面模板」是否正在使用:is_page_template()

頁面範本是 WordPress 的功能,可讓您選擇某些頁面的顯示方式。使用條件標籤 is_page_template(),您可以偵測某個頁面模板(或任何頁面模板)是否正在使用。

接受的參數

此條件標記只有一個參數:

  • $template (字串,可選):模板的名稱 - 帶副檔名。 (預設:無)

5。檢查頁面是否為存檔頁面:is_archive()

WordPress 網站中有多種檔案:日期存檔、類別檔案、標籤存檔、作者存檔、自訂分類檔案...但如果您想要偵測一般的檔案頁面,is_archive() 是您的朋友:檢查是否正在顯示存檔頁面。

接受的參數

此條件標記不接受任何參數。

is_archive()的使用範例

假設您想在存檔頁面中在貼文標題前添加一些文字。這是你要做的:

<?php

add_filter( 'the_title', 'alter_title_in_archives' );

function alter_title_in_archives( $title ) {

    if ( is_archive() && is_main_query() ) {
    
        return __( 'Archive', 'translation-domain' ) . ' &ndash; ' . $title;
    
    }
    
    return $title;

}

?>

6。檢查頁面是否為「日期檔案」頁面:is_date()

正如我之前所說,存檔頁面有很多種類型,日期存檔就是其中之一。日期檔案可分為年、月、日檔案;但如果您想要偵測一般的日期存檔頁面,您可以使用 is_date() 條件標記。

接受的參數

此條件標記不接受任何參數。

7。檢查給定的小部件是否正在使用:is_active_widget()

在 WordPress 中建立小工具既簡單又有趣,但我們可能需要確定該小工具是否在前端使用。條件標籤 is_active_widget() 正是這樣做的:它檢查小部件是否正在顯示。

接受的參數

此條件標記有四個參數:

  • $callback (字符串,可选):要检查的小部件回调。 (默认:FALSE
  • $widget_id (整数,可选):小部件的 ID。 (默认:无)
  • $id_base (字符串,可选):通过扩展 WP_Widget 创建的小部件的基本 ID。 (默认:无)
  • $skip_inactive (布尔值,可选):是否跳过不活动的小部件。 (默认:TRUE

is_active_widget()的使用示例

假设您的主题中的一个小部件需要 jQuery 才能运行,并且您需要有条件地将其排入队列。这是你要做的:

<?php

// source: http://codex.wordpress.org/Function_Reference/is_active_widget

if ( is_active_widget( false, false, $this->id_base, true ) ) {

    wp_enqueue_script( 'jquery' );

}

?>

8。检查页面是否为单个博客文章页面:is_single()

想要检查用户是否正在访问单个帖子?最流行的条件标签之一 is_single() 可以为您提供帮助。它可以检测任何帖子类型,但附件页面和页面页面除外。如果您指定帖子 ID、帖子标题或帖子标题(或这些内容的数组),您也可以检测特定帖子。

接受的参数

此条件标记只有一个参数:

  • $post (数组/字符串,可选):帖子 ID、标题、slug 或其中的数组。 (默认:无)

9。检查Users表中是否存在Email地址: email_exists()

如果您需要检查电子邮件地址是否在 WordPress 的用户表中,可以使用 email_exists() 条件标签。

此特定条件标记是返回 TRUE 以外内容的三个条件标记之一 - 它返回使用给定电子邮件地址注册的用户 ID。

接受的参数

此条件标记只有一个参数:

  • $email(字符串,可选):要检查的电子邮件地址。 (默认:无)

email_exists() 的使用示例

假设您正在开发一个插件,该插件可以根据用户的电子邮件地址构建电子邮件列表,并允许您使用自定义输入添加和删除更多电子邮件地址,但您希望防止删除属于用户的电子邮件地址。这是你要做的:

<?php

$email_address = get_email_from_some_function();

if ( email_exists( $email_address ) ) {

    wp_die( __( 'Sorry champ, you can\'t delete a user from this list.', 'translation-domain' ) );
    
}

?>

10。检查帖子类型是否分层:is_post_type_hierarchical()

与页面和子页面一样,您可以为 WordPress 中的新自定义帖子类型定义层次结构。条件标签 is_post_type_hierarchical() 让您的代码知道给定的帖子类型是否是分层的。

接受的参数

此条件标记只有一个参数:

  • $post_type (字符串,必需):帖子类型的名称。 (默认:无)

11。检查帖子是否“置顶”:is_sticky()

“置顶帖子”是指无论何时发布,都会保留在帖子列表顶部的帖子。而且——我在这里会有点歧视——他们应该得到与其他普通帖子不同的待遇。因此,如果您想向置顶帖子添加帖子类,或者以不同的方式处理它们,您可以使用 is_sticky() 条件标签让您的代码检测它们。

接受的参数

此条件标记只有一个参数:

  • $post_id (字符串,可选):帖子的 ID。 (默认:无)

is_sticky()的使用示例

假设您正在制作一个主题,并且希望在置顶帖子中显示“置顶”功能区。这是你要做的:

<?php

if ( is_sticky() ) {

    echo '<div class="sticky-ribbon"></div>';
	
}

?>

12。检查是否显示管理面板:is_admin()

让我们知道我们是在前端还是后端,条件标签 is_admin() 是最流行的条件标签之一。顾名思义,is_admin 检查 WordPress 管理面板是否正在显示。

接受的参数

此条件标记不接受任何参数。

13。检查页面是否为“分类档案”页面:is_category()

当您想要检测某些类别存档页面时,可以使用条件标签 is_category()。定义一个类别(或一组类别)作为其参数,您可以检查这些类别的档案是否正在显示。如果您未设置该参数,则当显示任何类别存档页面时,它将返回 TRUE

接受的参数

此条件标记只有一个参数:

  • $category (字符串/数组,可选):类别 ID、标题、slug 或这些的数组。 (默认:无)

is_category()的使用示例

假设您希望在显示“新闻”类别档案时包含不同的侧边栏。这是你要做的:

<?php

if ( is_category() ) {
    
	// Load sidebar-news.php.
	get_sidebar( 'news' );
	
} else {

	// Load sidebar.php.
	get_sidebar();

}

?>

结论

在这一部分中,我们回顾了 WordPress 中记录的 65 个条件标签中的 13 个。在接下来的部分中,我们将讨论剩下的 52 篇文章。如果您有任何问题或意见,请在下面提出 - 如果您喜欢这篇文章,请不要忘记分享!

下一部分见!

以上是探索 WordPress 中的條件標籤:從 1 到 13的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn