it-swarm.com.de

Neugestaltung der benutzerdefinierten Beitragstyp "Add New" Seite

Ich habe in ganz Google nach einer Lösung für dieses Problem gesucht. Ich schreibe ein benutzerdefiniertes Plugin für Beitragstypen, mit dem Besucher, die wir erhalten, angemeldet werden können. Ich schrieb zunächst ein Modell ohne benutzerdefinierter Beitragstypen, bin dann von einer Google-Suche hierher gekommen und habe einen Screenshot mit einem Beispiel für benutzerdefinierte Beitragstypen zum Speichern von Informationen über Anwälte gesehen. Es zeigte sich, dass jemand die Seite "Neues hinzufügen"/"Bearbeiten" für benutzerdefinierte Beitragstypen mit einer völlig neuen Oberfläche überarbeitet hat.

Ich habe mich gefragt, ob wordpress @ stackexchange Ressourcen für die Neugestaltung der benutzerdefinierten Beitragstypen "Hinzufügen/Bearbeiten" -Seiten haben würde.

Ich kann mich jedoch nicht an die Suchbegriffe erinnern, mit denen ich diesen Artikel gefunden habe.

Vielen Dank,
- Zack

8
Zack

Die Frage/Antwort, auf die Sie sich beziehen, war Tipps für die Verwendung von WordPress als CMS .

Die in dieser Antwort veröffentlichten Screenshots wurden mit dem Argument register_meta_box_cb erstellt, das für benutzerdefinierte Beitragstypen verfügbar ist.

register_meta_box_cb muss eine Rückruffunktion angeben, die den Code für die Meta-Box enthält.

Um die Meta-Box zu erstellen, können Sie die in WordPress integrierte Funktion add_meta_box verwenden, die auch eine Funktion zum Speichern der eingegebenen Daten benötigt, wenn der Beitrag gespeichert wird.

Hier ist ein Beispielcode, den ich erstellt habe, um meinem Portfolio-Beitragstyp, den ich auf meiner persönlichen Website verwende, zwei benutzerdefinierte Meta-Boxen hinzuzufügen.

Der von mir erstellte Beitragstyp "Projekte" enthielt das folgende Argument:

'register_meta_box_cb' => 'c3m_project_meta',

Die erste Funktion unten ist die Rückruffunktion für register_meta_box_cb. Die folgenden 2 geben den HTML-Code für die Meta-Felder auf der Seite zum Hinzufügen von Beiträgen aus und die letzten 2 speichern die eingegebenen Daten.

function c3m_project_meta() {
        add_meta_box('_c3m_project_url', __('Enter Website Url') , 'c3m_project_url', 'project', 'side', 'low');
        add_meta_box('_c3m_project_work', __('Enter Work Done on Project') , 'c3m_project_work', 'project', 'side', 'low');

        }


    function c3m_project_url($post) {
        global $post;
        echo  '<input type="hidden" name="banner-buttonmeta_noncename" id="banner-buttonmeta_noncename" value="' .
        wp_create_nonce( plugin_basename(__FILE__) ) . '" />';
        $projecturl = get_post_meta($post->ID, '_projecturl', true);
        echo '<input type="text" name="_projecturl" value="' . $projecturl . '" class="widefat" />' ; 
        }

    function c3m_project_work($post) {
        global $post;
        echo  '<input type="hidden" name="banner-buttonmeta_noncename" id="banner-buttonmeta_noncename" value="' .
        wp_create_nonce( plugin_basename(__FILE__) ) . '" />';
        $projectwork = get_post_meta($post->ID, '_projectwork', true);
        echo '<input type="text" name="_projectwork" value="' . $projectwork . '" class="widefat" />' ; 
        }


    add_action('admin_init', 'c3m_project_meta');



    function c3m_save_project_meta( $post_id , $post ) { 

        if ( !wp_verify_nonce( $_POST [ 'banner-buttonmeta_noncename' ], plugin_basename( __FILE__ ) )) { return $post ->ID; 

        }

        if ( !current_user_can( 'edit_post' , $post ->ID )) return $post ->ID; 
        $c3m_projecturl [ '_projecturl' ] = $_POST [ '_projecturl' ]; 
                    foreach ( $c3m_projecturl as $key => $value ) { 
                    if ( $post ->post_type == 'revision' ) return ; 

                    $value = implode( ',' , ( array ) $value );
                    if (get_post_meta( $post ->ID, $key , FALSE)) { 
                    update_post_meta( $post ->ID, $key , $value ); } else { 
                    add_post_meta( $post ->ID, $key , $value ); } if (! $value ) delete_post_meta( $post ->ID, $key ); 

                    }

        $c3m_projectwork [ '_projectwork' ] = $_POST [ '_projectwork' ]; 
                    foreach ( $c3m_projectwork as $key => $value ) { 
                    if ( $post ->post_type == 'revision' ) return ; 

                    $value = implode( ',' , ( array ) $value );
                    if (get_post_meta( $post ->ID, $key , FALSE)) { 
                    update_post_meta( $post ->ID, $key , $value ); } else { 
                    add_post_meta( $post ->ID, $key , $value ); } if (! $value ) delete_post_meta( $post ->ID, $key ); 

                    }
        }

   add_action( 'save_post' , 'c3m_save_project_meta' , 1, 2); 
11
Chris_O

Als ich mich mit der gleichen Angelegenheit befasste, fand ich diesen Artikel sehr interessant:

So erstellen Sie eine benutzerdefinierte WordPress-Meta-Box anstelle von benutzerdefinierten WordPress-Feldern

Wenn Sie lernen, wie Sie benutzerdefinierte WordPress-Meta-Boxen erstellen, können Sie professionelle UI-Elemente für sich und Ihre Kunden erstellen. In diesem Tutorial zu WordPress-Metaboxen erfahren Sie, wie Sie den Bildschirmen zum Bearbeiten von Beiträgen/Seiten Elemente der Administrator-Benutzeroberfläche hinzufügen.

Chris hat Recht mit dem Geld, obwohl eine zusätzliche Ressource nicht schadet :)

4
Noel Tock