Erstellen Sie die Layoutvorlage “default_content” basierend auf der Post-ID

Hintergrund

Was ich versuche zu tun, ist eine benutzerdefinierte Post-Layout-Vorlage für einen bestimmten Post (oder sogar Seite) zu erstellen, die der WordPress-Benutzer einfach mit dem WYSIWYG-Editor einfügen kann, ohne sich um die Formatierung kümmern zu müssen (im Wesentlichen “Regionen”). . Ich möchte mehrere dieser “Layout-Vorlagen” haben, so dass sie je nach Post (oder Seite), die sie im WP-Admin-Bereich bearbeiten, einen vordefinierten Bereich haben, den sie platzieren können, zum Beispiel Text und ein Bild.

Was ich versucht habe

add_filter( 'default_content', 'custom_editor_content' ); function custom_editor_content( $content ) { global $post; $id = $post->ID; if ( $id == '32') { $content = ' 
place image here

place text here

'; } return $content; }

Beispiel ursprünglich von hier genommen

Was ich versuche

Im obigen Beispiel (das nicht funktioniert) möchte ich im Wesentlichen eine bedingte statement machen, die besagt, if post id equals X, then use this template for the creation of the post

Was ich herausgefunden habe, ist, dass der default_content Filter nur während der Erstellung eines neuen Posts (oder einer neuen Seite) angewendet wird und daher keine Auswirkungen auf vorhandene Posts / Seiten hat. Daher ist es unbrauchbar, diesen Code auf der Basis von id auszuführen.

Endziele

Es gibt ein paar Ergebnisse, von denen ich denke, dass sie mir helfen können …

  • Wenn es eine Möglichkeit gibt, den Filter ” default_content beim Speichern / Bearbeiten des default_content auszuführen, würde die bedingte Anwendung des Filters basierend auf der Post-ID wahrscheinlich funktionieren

  • Finden Sie heraus, wie Sie mehrere verschiedene benutzerdefinierte Post-Vorlagen für einen Endbenutzer erstellen können. Das heißt, sie haben vordefinierte Regionen, in denen sie Inhalte in einen Post einfügen können.

  • Oder gibt es noch eine andere Möglichkeit, einem Endbenutzer ohne HTML-Fähigkeit zu erlauben, Inhalte einfach in einen Post oder eine Seite zu packen, und wird automatisch für sie formatiert (wobei ich die Formatierung im Backend mache)?

Solutions Collecting From Web of "Erstellen Sie die Layoutvorlage “default_content” basierend auf der Post-ID"

Finden Sie heraus, wie Sie mehrere verschiedene benutzerdefinierte Post-Vorlagen für einen Endbenutzer erstellen können. Das heißt, sie haben vordefinierte Regionen, in denen sie Inhalte in einen Post einfügen können.

Sie können dies mit benutzerdefinierten Feldern / Metaboxen tun, die Sie basierend auf dem Post-Typ oder der ID einschränken oder anzeigen können. Sie sollten das Advanced Custom Fields- Plugin ausprobieren.

Oder gibt es noch eine andere Möglichkeit, einem Endbenutzer ohne HTML-Fähigkeit zu erlauben, Inhalte einfach in einen Post oder eine Seite zu packen, und wird automatisch für sie formatiert (wobei ich die Formatierung im Backend mache)?

Wenn der Ansatz für benutzerdefinierte Felder zu kompliziert ist, können Sie die Anwendung mit Schaltflächen im Visual Editor ( siehe AddQuicktag ) ausprobieren . Auf diese Weise wird der Benutzer nur auf eine Schaltfläche in der Editor-Symbolleiste klicken und das HTML / CSS wird auf den Inhalt angewendet. Und wenn Sie die editor-style.css editieren, editor-style.css der Benutzer die Änderungen im Editor sehen, so wie es im Frontend erscheinen würde. Ich denke, es ist ein sauberer Ansatz, als Standard- shortcodes .