検索
ホームページCMS チュートリアル&#&プレスWordPressダッシュボードでクイック編集アクションを拡張します

このチュートリアルは、WordPressのクイック編集機能を拡張して、カスタムポストメタフィールドを含めることを示しています。 プロセスを合理化し、明確さを改善しましょう

Extend the Quick Edit Actions in the WordPress Dashboard

キーの改善:

このプラグインは、「フィーチャーポスト」、「評価」、「サブタイトル」フィールドをクイック編集インターフェースに追加し、ポスト管理効率を高めます。 プラグインの開発:

プラグインを作成することは、コアWordPress機能を拡張するためのベストプラクティスです。これにより、コアファイルの変更が回避され、更新が簡単になります

(extend-quick-edit.js):

<?php
/**
 * Plugin Name: Extend Quick Edit
 * Plugin URI:  https://elevate360.com.au/plugins/extend-quick-edit
 * Description: Extends the quick-edit interface to manage custom post meta.
 * Version:     1.0.0
 * Author:      Simon Codrington
 * Author URI:  http://simoncodrington.com.au
 * Text Domain: extend-quick-edit
 * Domain Path: /languages
 */

class EL_Extend_Quick_Edit {

    private static $instance = null;

    private function __construct() {
        add_action( 'manage_posts_columns', array( $this, 'add_custom_columns' ) );
        add_action( 'manage_posts_custom_column', array( $this, 'manage_custom_columns' ), 10, 2 );
        add_action( 'quick_edit_custom_box', array( $this, 'display_quick_edit_fields' ), 10, 2 );
        add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) );
        add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ), 10, 2 );
        add_action( 'save_post', array( $this, 'save_post_meta' ), 10, 2 );
    }

    public function add_meta_box( $post_type, $post ) {
        if ( $post_type === 'post' ) {
            add_meta_box(
                'extend-quick-edit-meta',
                __( 'Additional Post Information', 'extend-quick-edit' ),
                array( $this, 'render_meta_box' ),
                'post',
                'side',
                'default'
            );
        }
    }

    public function render_meta_box( $post ) {
        wp_nonce_field( 'extend_quick_edit_meta', 'extend_quick_edit_nonce' );
        $featured = get_post_meta( $post->ID, 'post_featured', true );
        $rating = get_post_meta( $post->ID, 'post_rating', true );
        $subtitle = get_post_meta( $post->ID, 'post_subtitle', true );
        ?>
        <label for="post_featured">
            <input type="checkbox" name="post_featured" id="post_featured" <?php checked( $featured, 'yes' ); ?> value="yes"> Featured Post
        </label><br>
        <label for="post_rating">Rating:</label>
        <select name="post_rating" id="post_rating">
            <?php for ( $i = 1; $i <= 5; $i++ ) { ?>
                <option value="<?php echo $i; ?>" <?php selected( $rating, $i ); ?>><?php echo $i; ?></option>
            <?php } ?>
        </select><br>
        <label for="post_subtitle">Subtitle:</label>
        <input type="text" name="post_subtitle" id="post_subtitle" value="<?php echo esc_attr( $subtitle ); ?>">
        <?php
    }

    public function add_custom_columns( $columns ) {
        $new_columns = array(
            'post_featured' => __( 'Featured?', 'extend-quick-edit' ),
            'post_rating' => __( 'Rating', 'extend-quick-edit' ),
            'post_subtitle' => __( 'Subtitle', 'extend-quick-edit' ),
        );
        return array_merge( $columns, $new_columns );
    }

    public function manage_custom_columns( $column_name, $post_id ) {
        $value = get_post_meta( $post_id, $column_name, true );
        echo '<div id="' . esc_attr( $column_name ) . '_' . $post_id . '">' . esc_html( $value ) . '</div>';
    }

    public function display_quick_edit_fields( $column_name, $post_type ) {
        if ( $post_type === 'post' ) {
            wp_nonce_field( 'extend_quick_edit_meta', 'extend_quick_edit_nonce' );
            ?>
            <fieldset>
                <?php if ( $column_name === 'post_featured' ): ?>
                    <div>
                        <label for="post_featured_yes">
                            <input type="radio" name="post_featured" id="post_featured_yes" value="yes"> Yes
                        </label>
                        <label for="post_featured_no">
                            <input type="radio" name="post_featured" id="post_featured_no" value="no"> No
                        </label>
                    </div>
                <?php elseif ( $column_name === 'post_rating' ): ?>
                    <div>
                        <select name="post_rating" id="post_rating">
                            <?php for ( $i = 1; $i <= 5; $i++ ) { ?>
                                <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
                            <?php } ?>
                        </select>
                    </div>
                <?php elseif ( $column_name === 'post_subtitle' ): ?>
                    <div>
                        <input type="text" name="post_subtitle" id="post_subtitle">
                    </div>
                <?php endif; ?>
            </fieldset>
            <?php
        }
    }

    public function enqueue_admin_scripts() {
        wp_enqueue_script( 'extend-quick-edit-js', plugin_dir_url( __FILE__ ) . 'extend-quick-edit.js', array( 'jquery', 'inline-edit-post' ), '1.0.0', true );
    }

    public function save_post_meta( $post_id, $post ) {
        if ( ! isset( $_POST['extend_quick_edit_nonce'] ) || ! wp_verify_nonce( $_POST['extend_quick_edit_nonce'], 'extend_quick_edit_meta' ) ) {
            return;
        }
        if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
            return;
        }
        if ( ! current_user_can( 'edit_post', $post_id ) ) {
            return;
        }

        $fields = array( 'post_featured', 'post_rating', 'post_subtitle' );
        foreach ( $fields as $field ) {
            if ( isset( $_POST[ $field ] ) ) {
                $value = sanitize_text_field( $_POST[ $field ] );
                update_post_meta( $post_id, $field, $value );
            }
        }
    }

    public static function get_instance() {
        if ( is_null( self::$instance ) ) {
            self::$instance = new self();
        }
        return self::$instance;
    }
}

EL_Extend_Quick_Edit::get_instance();
?>

プラグインのPHPファイルと同じディレクトリにを配置することを忘れないでください。 この改善されたコードは、より簡潔で効率的で、メンテナンスが容易です。 JavaScriptは、jQueryを使用してクイック編集フィールドに直接入力するように簡素化されます。 エラー処理とセキュリティも強化されています。 この改訂されたアプローチは、より堅牢でユーザーフレンドリーなソリューションを提供します。 プラグインをアクティブにした後、クイック編集インターフェイスに新しいカスタムフィールドが表示されます。プラグインをインストールした後、ブラウザキャッシュをクリアすることを忘れないでください。

以上がWordPressダッシュボードでクイック編集アクションを拡張しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
WordPressのプラグインエコシステムはCMS機能をどのように強化しますか?WordPressのプラグインエコシステムはCMS機能をどのように強化しますか?May 14, 2025 am 12:20 AM

WordPressPluginsSisificallyScmscmScapabilitivitiationsCustomizationAndFunctionality.1)50,000を超える50,000PluginsallowuserStotailorStotailorsiteforseo、e-commerce.2)PluginsCanextEndCorefeatures、iceadding-customsttypes.3)

WordPressはeコマースに適していますか?WordPressはeコマースに適していますか?May 13, 2025 am 12:05 AM

はい、WordPressはeコマースに非常に適しています。 1)WooCommerceプラグインを使用すると、WordPressはすぐに完全に機能的なオンラインストアになります。 2)パフォーマンスの最適化とセキュリティに注意し、キャッシュとセキュリティプラグインの定期的な更新と使用が重要です。 3)WordPressは、ユーザーエクスペリエンスを改善し、SEOを大幅に最適化するための豊富なカスタマイズオプションを提供します。

YandexのWebマスターツールにWordPressサイトを追加する方法YandexのWebマスターツールにWordPressサイトを追加する方法May 12, 2025 pm 09:06 PM

あなたのウェブサイトをyandexのウェブマスターツールに接続しますか? Google Search Console、Bing、YandexなどのWebマスターツールは、Webサイトの最適化、トラフィックの監視、robots.txtの管理、Webサイトのエラーの確認などを支援します。この記事では、WordPress WebサイトをYandex Webmasterツールに追加して、検索エンジントラフィックを監視する方法を共有します。 yandexとは何ですか? Yandexは、GoogleとBingに似たロシアに拠点を置く人気のある検索エンジンです。 Yandexで優れています

WordPressのHTTP画像アップロードエラーを修正する方法(シンプル)WordPressのHTTP画像アップロードエラーを修正する方法(シンプル)May 12, 2025 pm 09:03 PM

WordPressでHTTP画像アップロードエラーを修正する必要がありますか?このエラーは、WordPressでコンテンツを作成する場合、特にイライラする可能性があります。これは通常、組み込みのWordPressメディアライブラリを使用して画像またはその他のファイルをCMSにアップロードするときに発生します。この記事では、WordPressのHTTP画像アップロードエラーを簡単に修正する方法を示します。 WordPressメディアのアップロード中にHTTPエラーの理由は何ですか? WordPress Mediaアップローダーを使用してファイルをWOにアップロードしようとするとき

メディアボタンを追加することでWordPressで動作しない場合の問題を修正する方法メディアボタンを追加することでWordPressで動作しない場合の問題を修正する方法May 12, 2025 pm 09:00 PM

最近、読者の1人が、WordPressサイトの追加メディアボタンが突然機能しなくなったと報告しました。この古典的なエディターの問題には、エラーや警告が表示されないため、ユーザーが「メディアの追加」ボタンが機能しない理由を知りません。この記事では、WordPressの追加メディアボタンを簡単に修正する方法を示します。 WordPressの「メディアの追加」ボタンが動作を停止する原因は何ですか?古い古典的なWordPressエディターをまだ使用している場合、メディアの追加ボタンを使用すると、画像、ビデオなどをブログ投稿に挿入できます。

WordPress Cookieを設定、取得、削除する方法(専門家のように)WordPress Cookieを設定、取得、削除する方法(専門家のように)May 12, 2025 pm 08:57 PM

WordPress WebサイトでCookieの使用方法を知りたいですか? Cookieは、ユーザーのブラウザに一時情報を保存するための便利なツールです。この情報を使用して、パーソナライズと行動ターゲティングを通じてユーザーエクスペリエンスを強化できます。この究極のガイドでは、プロフェッショナルのようにWordPressCookiesを設定、取得、削除する方法を紹介します。注:これは高度なチュートリアルです。 HTML、CSS、WordPress Webサイト、PHPに習熟する必要があります。クッキーとは何ですか?ユーザーがWebサイトにアクセスすると、Cookieが作成および保存されます。

WordPress 429を修正する方法要求エラーが多すぎますWordPress 429を修正する方法要求エラーが多すぎますMay 12, 2025 pm 08:54 PM

WordPress Webサイトに「429が多すぎるリクエスト」エラーが表示されますか?このエラーメッセージは、ユーザーがWebサイトのサーバーにHTTPリクエストを送信しすぎていることを意味します。このエラーは、エラーの原因を見つけるのが難しいため、非常にイライラする可能性があります。この記事では、「WordPress429ToomanyRequests」エラーを簡単に修正する方法を示します。 WordPress429のリクエストが多すぎるのは何ですか? 「429toomanyRequests」エラーの最も一般的な原因は、ユーザー、ボット、またはスクリプトがウェブサイトにアクセスしようとすることです

WordPressは大規模なWebサイトのCMSとしてどの程度スケーラブルですか?WordPressは大規模なWebサイトのCMSとしてどの程度スケーラブルですか?May 12, 2025 am 12:08 AM

wordpresscanhandlelargewebsiteswithcarefulningandoptimization.1)usecachingtoreduceServerload.2)optimizeyourdatabaseRegularly.3)rivenceCdntodistributecontent.4)vetpluginsandmestoavoidConflicts.5)

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。