首頁 >CMS教程 >&#&按 >WordPress自定義帖子類型 - 通知和分類法

WordPress自定義帖子類型 - 通知和分類法

Lisa Kudrow
Lisa Kudrow原創
2025-02-15 10:31:11994瀏覽

WordPress自定義帖子類型 - 通知和分類法

鑰匙要點

  • >可以通過使用“ post_updated_messages”掛鉤來實現WordPress自定義帖子類型(CPT)的自定義管理通知,該掛鉤允許用戶更改當保存,發布或更新帖子時顯示的默認警報消息。
  • 在WordPress中,分類法是對包括CPT在內的任何類型帖子進行分組的機制。可以使用“ register_taxonomy()”函數創建自定義分類法,從而允許更具體的CPT分類。
  • >
  • >自定義帖子類型和分類法是強大的WordPress功能,可以在默認帖子和頁麵類型之外進行更有條理和特定的數據分組或帖子條目。
  • >
>在我以前的帖子中,我介紹了自定義帖子類型(CPT)以及如何為您的WordPress供電的網站創建一個。

>我們還研究瞭如何自定義自定義帖子類型的各種UI標籤,以使其與本機

post

>和 page post類型不同。但是,我們沒有介紹如何自定義他們生成的管理員通知。 > >在本教程中,我將介紹如何自定義這些通知以及如何向自定義郵政類型註冊新的分類法。

自定義CPT Admin通知

您是否熟悉管理頁面頂部附近顯示的警報消息,例如當帖子保存為草稿,發布,甚至保存插件的設置時?此消息是被稱為管理通知的內容。

>

默認情況下,在自定義帖子上工作時顯示的管理員通知假設您正在處理帖子類型,因此,當更新書籍郵政類型時,顯示以下通知:帖子更新。查看帖子。

>您可以使用post_updated_messages掛鉤輕鬆地更改這些消息的文本:

>

代碼說明:上面的代碼自定義了由書籍自定義帖子類型生成的管理通知。 >
add_filter( 'post_updated_messages', 'book_cpt_messages' );


/**
 * Book CPT updates messages.
 *
 * @param array $messages Existing post update messages.
 *
 * @return array Amended book CPT notices
 */
function book_cpt_messages( $messages ) {
    $post             = get_post();
    $post_type        = get_post_type( $post );
    $post_type_object = get_post_type_object( $post_type );

    $messages['book'] = array(
        0  => '', // Unused. Messages start at index 1.
        1  => __( 'Book updated.', 'textdomain' ),
        2  => __( 'Custom field updated.', 'textdomain' ),
        3  => __( 'Custom field deleted.', 'textdomain' ),
        4  => __( 'Book updated.', 'textdomain' ),
        5  => isset( $_GET['revision'] ) ? sprintf( __( 'Book restored to revision from %s', 'textdomain' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
        6  => __( 'Book published.', 'textdomain' ),
        7  => __( 'Book saved.', 'textdomain' ),
        8  => __( 'Book submitted.', 'textdomain' ),
        9  => sprintf(
            __( 'Book scheduled for: <strong>%1$s</strong>.', 'textdomain' ),
            date_i18n( __( 'M j, Y @ G:i', 'textdomain' ), strtotime( $post->post_date ) )
        ),
        10 => __( 'Book draft updated.', 'textdomain' )
    );

    if ( $post_type_object->publicly_queryable ) {
        $permalink = get_permalink( $post->ID );

        $view_link = sprintf( ' <a href="%s">%s</a>', esc_url( $permalink ), __( 'View book', 'textdomain' ) );
        $messages[ $post_type ][1] .= $view_link;
        $messages[ $post_type ][6] .= $view_link;
        $messages[ $post_type ][9] .= $view_link;

        $preview_permalink = add_query_arg( 'preview', 'true', $permalink );
        $preview_link      = sprintf( ' <a target="_blank" href="%s">%s</a>', esc_url( $preview_permalink ), __( 'Preview book', 'textdomain' ) );
        $messages[ $post_type ][8] .= $preview_link;
        $messages[ $post_type ][10] .= $preview_link;
    }

    return $messages;
}
$消息多維數組控制任何帖子類型顯示的管理通知。

>自定義書籍自定義帖子類型的消息,創建一個包含各種消息的索引數組,作為$消息的值['book']。

if語句檢查自定義郵政類型是否公開查詢。也就是說,在註冊自定義郵政類型時,公共論點是否設置為true。

>如果為true,則查看屬於CPT的帖子的鏈接將添加到更新,發布或計劃出版時顯示的管理通知中,而在提交帖子進行審查或提交帖子時,則添加了該帖子。草稿已更新。

自定義分類法

在WordPress中,分類法是分類任何類型帖子的機制。

>分類法的

示例包括與給定類別和標籤相關的帖子分組的類別,該帖子與類別非常相似但更自由形式。有關分類法的更多信息,請訪問WordPress codex。 話雖如此,我們將介紹如何創建自定義分類法。讓我們以創建圖書帖子類型的示例,使用與博客文章相同的類別對書籍進行分類。

>

>現實生活中的示例是一個簡單的數字下載插件,該插件使用下載定制帖子類型用於數字產品條目,其中download_category分類法用於產品分類。

為創建自定義分類法,使用register_taxonomy()函數並將其掛鉤到INIT ACTION,例如So:

如果您已經有一本書自定義帖子類型,則應看到添加到管理菜單和發布屏幕的類別分類法。
add_filter( 'post_updated_messages', 'book_cpt_messages' );


/**
 * Book CPT updates messages.
 *
 * @param array $messages Existing post update messages.
 *
 * @return array Amended book CPT notices
 */
function book_cpt_messages( $messages ) {
    $post             = get_post();
    $post_type        = get_post_type( $post );
    $post_type_object = get_post_type_object( $post_type );

    $messages['book'] = array(
        0  => '', // Unused. Messages start at index 1.
        1  => __( 'Book updated.', 'textdomain' ),
        2  => __( 'Custom field updated.', 'textdomain' ),
        3  => __( 'Custom field deleted.', 'textdomain' ),
        4  => __( 'Book updated.', 'textdomain' ),
        5  => isset( $_GET['revision'] ) ? sprintf( __( 'Book restored to revision from %s', 'textdomain' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
        6  => __( 'Book published.', 'textdomain' ),
        7  => __( 'Book saved.', 'textdomain' ),
        8  => __( 'Book submitted.', 'textdomain' ),
        9  => sprintf(
            __( 'Book scheduled for: <strong>%1$s</strong>.', 'textdomain' ),
            date_i18n( __( 'M j, Y @ G:i', 'textdomain' ), strtotime( $post->post_date ) )
        ),
        10 => __( 'Book draft updated.', 'textdomain' )
    );

    if ( $post_type_object->publicly_queryable ) {
        $permalink = get_permalink( $post->ID );

        $view_link = sprintf( ' <a href="%s">%s</a>', esc_url( $permalink ), __( 'View book', 'textdomain' ) );
        $messages[ $post_type ][1] .= $view_link;
        $messages[ $post_type ][6] .= $view_link;
        $messages[ $post_type ][9] .= $view_link;

        $preview_permalink = add_query_arg( 'preview', 'true', $permalink );
        $preview_link      = sprintf( ' <a target="_blank" href="%s">%s</a>', esc_url( $preview_permalink ), __( 'Preview book', 'textdomain' ) );
        $messages[ $post_type ][8] .= $preview_link;
        $messages[ $post_type ][10] .= $preview_link;
    }

    return $messages;
}

>您還可以使用register_post_type()進行登記自定義帖子類型,register_taxonomy()函數還接受了自定義標籤和配置自定義分類法的參數數組。 WordPress自定義帖子類型 - 通知和分類法> WordPress自定義帖子類型 - 通知和分類法>我不會解釋參數,因為它們與register_post_type()的參數幾乎相同。可以在此處提供參數和描述的列表。

>

結論

>自定義帖子類型是WordPress的強大功能,可用於分組不適合帖子和頁麵類型的數據或發布條目。蛋糕上的錦上添花是通過註冊自定義分類法進一步對自定義帖子類型的帖子進行分類的能力。

您有疑問或貢獻嗎?請使用評論讓我們知道。

>關於WordPress自定義帖子類型,通知和分類法的常見問題

>

>如何在WordPress中創建自定義帖子類型?

>在WordPress中創建自定義帖子類型涉及在functions.php文件中添加幾行代碼。您需要使用register_post_type()函數,該函數允許您通過其標籤,支持的功能,可用性和其他條件來定義新的帖子類型。請記住,通過訪問永久鏈接設置頁面添加代碼後,要刷新您的重寫規則。

> WordPress中的WordPress分類法是什麼?自定義帖子類型)在一起。它們有兩種形式:類別和標籤。類別是分層的,可以具有子類別,而標籤不是層次結構。您可以使用register_taxonomy()函數創建自定義分類法。

>如何在WordPress中顯示自定義的郵政類型通知?

>

以顯示自定義的Post類型通知,您可以使用“ post_updated_messages”過濾器掛鉤。此掛鉤允許您自定義任何帖子類型的更新消息。您可以將函數添加到您的function.php文件中檢查帖子類型,然後設置適當的消息。

>

>在註冊時如何將自定義分類法與自定義郵政類型相關聯?帶有register_taxonomy()函數的自定義分類法,您可以指定該分類法應該與之關聯的帖子類型。這是通過將帖子類型名稱作為第二個參數的數組來完成的。自定義更新帖子時顯示的消息。這對於自定義帖子類型特別有用,您可能希望在其中顯示與默認的消息不同的消息。

如何在WordPress中使用'get_post_type'函數? 'WordPress中的功能用於檢索當前帖子或給定帖子的帖子類型。它返回成功的字符串,而在失敗方面是錯誤的。當您需要基於帖子類型執行操作時,此功能可能很有用。

>

>如何將自定義字段添加到WordPress中的自定義帖子類型?使用“ add_meta_box”函數在WordPress中進行自定義帖子類型。此功能允許您在帖子編輯屏幕中添加一個新的Meta框,您可以在其中輸入帖子的其他信息。

>

>如何在我的網站的首頁上顯示自定義帖子類型? >要在網站的首頁上顯示自定義帖子類型,您可以修改WordPress用於顯示帖子的主查詢。這可以通過使用'Pre_get_posts'操作鉤並將'post_type'參數設置為您的自定義帖子類型的名稱。

如何創建特定於自定義帖子類型的自定義分類法? >

在使用register_taxonomy()函數註冊自定義分類法時,您可以指定該分類法應與之關聯的郵政類型。這是通過將帖子類型名稱作為第二個參數的數組來完成的。每當創建或更新帖子或頁面時,在WordPress中都會觸發。它可用於執行諸如保存元數據,發送通知或保存後應發生的其他任務之類的操作。

>

以上是WordPress自定義帖子類型 - 通知和分類法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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