切換語言為:簡體

WordPress Meta Description 自定義欄位整合指南

  • 爱糖宝
  • 2024-11-12
  • 2027
  • 0
  • 0

以下是一個描述如何新增 meta_description 自定義欄位的 文件。文件包括程式碼的說明和結構,幫助你將程式碼整合到 WordPress 中,實現自定義頁面描述的功能。

程式碼的新增路徑在主題資料夾下的functions.php,例如:

/opt/homebrew/var/wordpress/wp-content/themes/twentytwentyfour/functions.php

WordPress Meta Description 自定義欄位整合指南

本文件將指導你如何在 WordPress 中為頁面和文章新增一個 meta_description 欄位,用於設定頁面的自定義 meta description。該欄位不僅可以在編輯介面中進行設定,還能顯示在 REST API 中,以便進一步整合。

功能概述

  1. 註冊 Meta Description 自定義欄位:在 WordPress 中建立並註冊一個 meta_description 欄位,允許在 REST API 中顯示。

  2. 動態生成 Meta Description 標籤:自動生成 <meta name="description"> 標籤,並輸出到 <head> 中。

  3. 為頁面和文章新增 Meta Description 編輯框:在頁面和文章的編輯介面中增加一個輸入框,便於手動設定 meta_description

  4. 儲存自定義欄位:確保欄位值在儲存文章或頁面時被儲存到資料庫中。


1. 註冊 Meta Description 自定義欄位

首先,在 WordPress 中註冊 meta_description 自定義欄位。此欄位被指定為一個單值欄位(single),型別為字串(string),並且在 REST API 中顯示。

function register_meta_description_field() {
    register_post_meta('page', 'meta_description', [
        'show_in_rest' => true,  // 允許在REST API中顯示
        'type' => 'string',
        'single' => true,  // 設定為單值欄位
        'description' => 'Meta Description for the page',
    ]);
}
add_action('init', 'register_meta_description_field');

2. 動態生成 Meta Description 標籤

此功能會根據頁面或文章標題生成 meta_description。如果標題以 "Demo App for" 開頭,則動態生成 meta description;否則,優先讀取自定義欄位的內容。

function add_meta_description() {
    if (is_singular()) {
        $title = get_the_title();
        if (strpos($title, 'Demo App for') === 0) {
            $processed_title = preg_replace('/^Demo App for\s*/', '', $title);
            $meta_description = "Begin {$processed_title} something end.";
        } else {
            $meta_description = get_post_meta(get_the_ID(), 'meta_description', true);
            if (empty($meta_description)) {
                return;
            }
        }
        echo '<meta name="description" content="' . esc_attr($meta_description) . '">';
    }
}
add_action('wp_head', 'add_meta_description');

3. 為頁面和文章新增 Meta Description 編輯框

在文章和頁面編輯介面新增一個輸入框,允許使用者手動輸入 meta description。

function add_meta_description_meta_box() {
    add_meta_box(
        'meta_description_meta_box',  // HTML ID
        'Meta Description',  // 標題
        'display_meta_description_meta_box',  // 回撥函式
        ['post', 'page'],  // 適用文章和頁面
        'normal',  // 放置位置
        'high'  // 優先順序
    );
}
add_action('add_meta_boxes', 'add_meta_description_meta_box');

function display_meta_description_meta_box($post) {
    $meta_description = get_post_meta($post->ID, 'meta_description', true);
    ?>
    <label for="meta_description">Meta Description:</label>
    <textarea name="meta_description" id="meta_description" rows="4" style="width:100%;"><?php echo esc_textarea($meta_description); ?></textarea>
    <?php
}

4. 儲存 Meta Description 欄位

確保在儲存文章或頁面時,meta_description 欄位的值被安全儲存到資料庫中。

function save_meta_description_meta_box($post_id) {
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
    if (!current_user_can('edit_post', $post_id)) return;

    if (isset($_POST['meta_description'])) {
        update_post_meta($post_id, 'meta_description', sanitize_text_field($_POST['meta_description']));
    }
}
add_action('save_post', 'save_meta_description_meta_box');


總結

此文件介紹瞭如何在 WordPress 中註冊、動態生成並手動編輯 meta_description 欄位,為你的 WordPress 頁面和文章新增自定義的 meta description。透過這種方式,你可以在前端 SEO 最佳化和編輯靈活性上取得平衡。

提示:在註冊欄位時設定 show_in_resttrue,確保該欄位可在 REST API 中顯示,從而支援其他應用的進一步整合。


作者:大菜果果
連結:https://juejin.cn/post/7436252096360890377

0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.