suchen
HeimCMS-TutorialWordDrücken SieErweitern Sie die Schnellbearbeitungsaktionen im WordPress -Dashboard

Dieses Tutorial zeigt, dass die schnelle Bearbeitungsfunktion von WordPress benutzerdefinierte Post -Meta -Felder erweitert wird. Lassen Sie uns den Prozess optimieren und die Klarheit verbessern.

Extend the Quick Edit Actions in the WordPress Dashboard

Schlüsselverbesserungen: Dieses Plugin fügt "Felder" Featured Post "," Rating "und" Untertitel "zur Schnellbearbeitungsschnittstelle hinzu, die die Effizienz des Postmanagements verbessert.

Plugin -Entwicklung: Erstellen eines Plugins ist die beste Praxis für die Erweiterung der Kern -WordPress -Funktionalität. Dadurch wird vermieden, Kerndateien zu ändern und einfachere Aktualisierungen zu gewährleisten.

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

Denken Sie daran, extend-quick-edit.js in demselben Verzeichnis wie die PHP -Datei Ihres Plugins zu platzieren. Dieser verbesserte Code ist prägnanter, effizienter und leichter zu warten. Das JavaScript ist vereinfacht, um die Schnellbearbeitungsfelder mit JQuery direkt zu füllen. Die Handhabung und Sicherheit des Fehlers werden ebenfalls verbessert. Dieser überarbeitete Ansatz bietet eine robustere und benutzerfreundlichere Lösung. Nach dem Aktivieren des Plugins sehen Sie die neuen benutzerdefinierten Felder in der Schnellbearbeitungsschnittstelle. Denken Sie daran, Ihren Browser -Cache nach der Installation des Plugins zu löschen.

Das obige ist der detaillierte Inhalt vonErweitern Sie die Schnellbearbeitungsaktionen im WordPress -Dashboard. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wie einfach ist es, Inhalte mit WordPress zu verwalten?Wie einfach ist es, Inhalte mit WordPress zu verwalten?May 09, 2025 am 12:11 AM

WordPressISUSER-freundlich-friftziehendeuToitIntuitiveInterfaceandcms, die untersagt, dass die Kontent-Kontent- und Anamse-Fotorganisation.itsflexibilityISextexforeasyContentCreation und -Anträgungsfrequenz

Wie wird WordPress in Geschäftsumgebungen verwendet?Wie wird WordPress in Geschäftsumgebungen verwendet?May 08, 2025 am 12:04 AM

WordpressissoutableForbusinessSetting.1) Issupportse-Commercewithplugins-ähnlichwoocommerce, erlaubt ProductManagement undPaymentprozessing.2 ItersasacmsCorcorporateblologs, EnhancingSeoandengagement.3) CustomizationSpossiblewithnoRaChemesandPlugglugins.4 ).4 ).4 ).4)

Welche Arten von Websites passt nicht gut zu WordPress?Welche Arten von Websites passt nicht gut zu WordPress?May 07, 2025 am 12:10 AM

WordPressIsnotidealforHigh-Trafficwebsites, CustomandComplex Applications, SicherheitssensitiveApplikationen, echte Timedataprozessing, andhoiglylycustomizeduserInterfaces.forHigh-Trafficsites, Usenext.JSorcustomsolutions; forcomplexApplication, optfordjangoorrubiorrubisions

Können Sie einen Blog mit WordPress erstellen?Können Sie einen Blog mit WordPress erstellen?May 06, 2025 am 12:03 AM

Ja, YoucanbuildabogwithWordPress.1) Wählen Sie zwischen WordPress.comforBeginersorwordPress.orgformorEcontrol.2) selectathemetopersonalizeyourblog.Slook.3) UsePluginstoenHanceFunctionality, LikeseoandSocialMediaInteGration

Wie sicher ist WordPress als CMS -Plattform?Wie sicher ist WordPress als CMS -Plattform?May 05, 2025 am 12:01 AM

WordPressCanbesecureifManagedProperly.1) KeepTheWordPressCoreupdatedTopatchVulnerabilities.2) Vetandupdatepluginsandthemes ausRomReputableSources.3) EnforcestongPasswordsandussetwo-Factorautorautical.5) ChooseaahostingProviderwithgoodscurityPractices

Welche Art von Websites können Sie mit WordPress CMS erstellen?Welche Art von Websites können Sie mit WordPress CMS erstellen?May 04, 2025 am 12:06 AM

WordPressCanBuildVariousTypesofwebsites: 1) Personalblogs, EasyToSetupwithThemesAndPlugins.2) BusinessWebsites, verwenden DRAG-and-DROPBUILDERS.3) E-CommercePlatformen mitwoocommerceAnteAntEAntinte integration

Was sind die Vor- und Nachteile der Verwendung von WordPress als CMS?Was sind die Vor- und Nachteile der Verwendung von WordPress als CMS?May 03, 2025 am 12:09 AM

WordPressIsapowerfulCmswithSignificantAdvantages und 1) Itsuser-freundlich und idealforbegglins.2) ItsexibilityCanleadtoToTandSecurityISSusiessifnotmanagedProperly) reguläre UMGEDATEDATEANTREPHICEPTIMICUMISIONSYTORSYTORYTOMAINTAINSYTOMAINTAINSAGEMAINTAILSAGE

Wie vergleicht WordPress mit anderen beliebten CMS -Plattformen?Wie vergleicht WordPress mit anderen beliebten CMS -Plattformen?May 02, 2025 am 12:18 AM

WordPressExcelSineaseofuseandAptability, Makingidealforbegglegersandsmalltomedium-Größe-Sizedbusiness.1) Easyofuse: Wordpressisuser-freundlich.2) Sicherheit: DrupalleadswithstrongSecurityFeatures.3) Leistung: GhostofferssexcellentPerformeduetonodes.jscurityFeatures.js.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.