cari
RumahTutorial CMSWordTekanPanjangkan tindakan edit cepat di papan pemuka WordPress

Tutorial ini menunjukkan untuk memperluaskan fungsi edit cepat WordPress untuk memasukkan medan meta post tersuai. Mari kita menyelaraskan proses dan meningkatkan kejelasan.

Extend the Quick Edit Actions in the WordPress Dashboard

Penambahbaikan utama: Plugin ini menambah "Posted Posted," "Rating," dan "Subtitle" fields ke antara muka edit cepat, meningkatkan kecekapan pengurusan pos.

Pembangunan plugin: Membuat plugin adalah amalan terbaik untuk memperluaskan fungsi WordPress Core. Ini mengelakkan mengubahsuai fail teras, memastikan kemas kini yang lebih mudah. ​​

<?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();
?>

(extend-quick-edit.js):

jQuery(document).ready(function($) {
    var $inlineEdit = inlineEditPost.edit;
    inlineEditPost.edit = function(id) {
        $inlineEdit.apply(this, arguments);
        var $row = $(this.row);
        var post_id = parseInt($row.attr('id').replace(/[^0-9]/g, ''));
        var fields = ['post_featured', 'post_rating', 'post_subtitle'];
        $.each(fields, function(index, field) {
            var value = $('#' + field + '_' + post_id).text();
            if (field === 'post_featured') {
                $row.find('input[name="' + field + '"][value="' + value + '"]').prop('checked', true);
            } else {
                $row.find('#' + field).val(value);
            }
        });
    }
});
ingat untuk meletakkan

dalam direktori yang sama seperti fail PHP plugin anda. Kod yang lebih baik ini lebih ringkas, cekap, dan mudah dikekalkan. JavaScript dipermudahkan untuk secara langsung mengisi medan edit cepat menggunakan jQuery. Pengendalian ralat dan keselamatan juga dipertingkatkan. Pendekatan yang disemak ini memberikan penyelesaian yang lebih mantap dan mesra pengguna. Selepas mengaktifkan plugin, anda akan melihat medan tersuai baru dalam antara muka edit cepat. Ingatlah untuk membersihkan cache penyemak imbas anda setelah memasang plugin. extend-quick-edit.js

Atas ialah kandungan terperinci Panjangkan tindakan edit cepat di papan pemuka WordPress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Bagaimana Skala WordPress sebagai CMS untuk laman web besar?Bagaimana Skala WordPress sebagai CMS untuk laman web besar?May 12, 2025 am 12:08 AM

Wordpresscanhandlelargewebsiteswithcarefulplanningandoptimization.1) useCachingtoreduceServerVoad.2) OptimizeYourDatabaseRegularly.3) ExplibectDntodistributeContent.4) vetpluginsandthemestoavoidconflicts.5)

Apakah ciri teras WordPress sebagai CMS?Apakah ciri teras WordPress sebagai CMS?May 10, 2025 am 12:15 AM

WordPressexcellentChoiceForacmsDuetoitsuser-friendlyInterface, extensiveCosystem, seocapability, skalability, andsupportivecommunity.1) ITSINDUITIVEMAKSAKSCONGANTENGETYESEasySers.2) theVASTArrayofthemesAnveSiveSveSiveSveSiveSiveSveSiveSveSiveSveSiveSveMesVeScoVeSveScoVeMesVeSveScoVeMesVeS

Betapa mudahnya menguruskan kandungan dengan WordPress?Betapa mudahnya menguruskan kandungan dengan WordPress?May 09, 2025 am 12:11 AM

Wordpressisuser-friendlyduetoitsintuitiveinterfaceandcms, whingseparatatescontentfromdesign.itoffersarichtexteditorforeasycontentcreationandamedialibraryfororganization.itsflexabilityisenhancedbynumeroustemesandplugins

Bagaimana WordPress digunakan dalam tetapan perniagaan?Bagaimana WordPress digunakan dalam tetapan perniagaan?May 08, 2025 am 12:04 AM

Wordpressissuitibleforbusinesssettings.1) itsupportse-commerceWithpluginsLikeWoocommerce, membenarkanProductManagementandPaymentProcessing.2) itservesasacmsforcorporateblogs, enhancingseoandengagement.3)

Apakah jenis laman web yang tidak sesuai untuk WordPress?Apakah jenis laman web yang tidak sesuai untuk WordPress?May 07, 2025 am 12:10 AM

WordPressisnotidealforhigh-Trafficwebsites, CustomandComplexApplications, Sensitiveapplications Security, Real-timedataprocessing, andHighlyCustomizedUsererinterfaces.Forhigh-Trafficsites, useNext.JSorCustomSolutions;

Bolehkah anda membina blog dengan WordPress?Bolehkah anda membina blog dengan WordPress?May 06, 2025 am 12:03 AM

Ya, yoUcanBuildablogWithWordPress.1) PilihBetWordPress.comforbeginnersorwordpress.orgformorecontrol.2) selectathemetopersonalzeyourblog'sLook.3)

Betapa selamatnya WordPress sebagai platform CMS?Betapa selamatnya WordPress sebagai platform CMS?May 05, 2025 am 12:01 AM

Wordpresscanbesecureifmanagedproperly.1) Keepthewordpresscoreupdatedtopatchvulnerabilities.2) vetandupdatepluginsandthemesfromreputablesources.3)

Apa jenis laman web yang boleh anda bina dengan WordPress CMS?Apa jenis laman web yang boleh anda bina dengan WordPress CMS?May 04, 2025 am 12:06 AM

Wordpresscanbuildvarioustypesofwebsites: 1) peribadiBlogs, easyTosetupwiththemesandplugins.2) Businesswebsites, menggunakandrag-and-dropbuilders.3) e-commerceplatforms, withwooComerceForseMlessintegration.4)

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Nordhold: Sistem Fusion, dijelaskan
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa