wake-up-neo.net

Wie erstelle ich verschiedene bearbeitbare Abschnitte auf einer Wordpress-Seite?

Ich habe mein erstes Thema in WordPress erstellt und bin beim Hinzufügen von Inhalten in verschiedenen Abschnitten auf Probleme gestoßen.

Mein HTML ist etwas so,

<div id="maintext">
   <-- Text -->
</div>
<div id="products">
   <-- Text and Images -->
</div>
<div id="about_company">
   <-- Text boxes -->
</div>

Wie stelle ich sicher, dass der über den WordPress-Editor hinzugefügte Inhalt unter den jeweiligen Divs fällt? Für das "maintext" div lade ich den Inhalt von der Seite selbst, aber wie füge ich den anderen 2 divs dynamisch Inhalte hinzu?

Ich habe in ein paar Foren gesucht und vorgeschlagen, Inhalte mithilfe von Widgets hinzuzufügen. Gibt es eine Möglichkeit, dies ohne Widgets zu tun?

Jede Hilfe wird gerne entgegengenommen.

41
Vinith Almeida

Leider ist das Hinzufügen mehrerer bearbeitbarer Felder auf einer Seite mit Wordpress nicht besonders einfach.

Viele WP -Entwickler, die ich kenne (ich selbst eingeschlossen), verwenden das Advanced Custom Fields Plugin für zusätzliche Inhaltsfelder.

Die Schritte, um dies zu erreichen:

1) Installieren Sie den ACF-Stecker.
2) Legen Sie im Einstellungsbereich für ACF einige neue Felder an.
3) Weisen Sie die neuen Felder so zu, dass sie für eine bestimmte Seite oder einen Satz von Seiten angezeigt werden.
4) Aktualisieren Sie Ihre Seitenvorlage für die angegebenen Seiten, damit die neuen Felder angezeigt werden.

Sie können beispielsweise eine Reihe von Standard-Wysiwyg-Feldern erstellen und diese dann der Übersichtsseite zuordnen. Nennen wir diese Felder: main_text, products_info und about_company. Nachdem die Felder erstellt und einer Seite zugewiesen wurden, stehen beim Bearbeiten dieser Seite die zusätzlichen Felder zum Bearbeiten zur Verfügung.

Damit diese neuen Felder für Besucher sichtbar sind, müssen sie der Seitenvorlage hinzugefügt werden, die Sie für Ihre Übersichtsseite verwenden. Der Code könnte so aussehen:

<div id="maintext">
   <!-- Text -->
   <?php if(get_field('main_text')){ //if the field is not empty
        echo '<p>' . get_field('main_text') . '</p>'; //display it
    } ?>
</div>
<div id="products">
   <!-- Text and Images -->
   <?php if(get_field('products_info')){ //if the field is not empty
        echo '<p>' . get_field('products_info') . '</p>'; //display it
    } ?>
</div>
<div id="about_company">
   <!-- Text boxes -->
   <?php if(get_field('about_company')){ //if the field is not empty
        echo '<p>' . get_field('about_company') . '</p>'; //display it
    } ?>
</div>

Es gibt viele gute Beispiele hier . Wenn Sie sich wirklich ehrgeizig fühlen, können Sie ACF direkt in Ihr Theme einfügen, anstatt das Plugin zu installieren.

73
metaColin

Ich glaube, Sie haben drei Möglichkeiten:

  1. Erstellen Sie einen Widget-Bereich, in dem Sie den Inhalt in einem Text-Widget anzeigen können: http://codex.wordpress.org/Function_Reference/register_sidebar
  2. Erstellen Sie eine Vorlage, auf der Sie den Inhalt einer anderen Seite erhalten: http://codex.wordpress.org/Page_Templates#File_Folders
  3. Erstellen Sie eine neue Meta-Box für alle Ihre Seiten: http://codex.wordpress.org/Function_Reference/add_meta_box

Ich glaube, das, wonach Sie suchen, ist Option 2. Die anderen sind eher seitenorientiert, wenn Sie möchten, dass der zusätzliche Inhalt auf jeder einzelnen Seite angezeigt wird.

5
user2019515
<div id="maintext">
   <?php the_content(); ?>
</div>
<div id="products">
   <?php // echo wp function to get product data; ?>
</div>
<div id="about_company">
   <?php // echo wp function to get about companydata; ?>
</div>
3
Manish

Wenn Sie das Thema schreiben, möchten Sie vielleicht ein WordPress-Framework verwenden, damit Sie nicht bei Null anfangen müssen. 

Wenn dies nicht der Fall ist, denken Sie an den Endbenutzer. Wie werden sie Seiten und Beiträgen Abschnitte hinzufügen? Müssen sie sich innerhalb der WordPress-Benutzeroberfläche über bestimmte Stellen bewegen, oder verwenden sie lieber Kurzcodes für Benutzer?

Meine Empfehlung ist, ein Plugin zu erstellen, das den Abschnitt im Dokumentinhalt darstellt. Oder Widgetinhalt, wenn dies der Fall ist.

Ich habe ein kleines Stück Code geschrieben, um zu veranschaulichen, wie man so etwas erreichen kann und auch, weil ich es gerade brauche: D. Sie finden es auf github hier https://github.com/lionpage/Front-Office-Document-Sections

Hoffe das hilft

2
Page Carbajal

Ich hatte Probleme damit und wollte kein Plugin verwenden. Die einzige native Wordpress-Option, die ich gefunden habe, war die Verwendung von Custom Fields . Dies funktioniert jedoch nur für Text und ist ziemlich umständlich.

Die andere Nicht-Plugin-Option ist die Verwendung von HTML im Wordpress-Editor. Dies ist jedoch keineswegs ideal. 

Schließlich gab ich auf und entschied mich für das Advanced Custom Fields-Plugin. 

0
kregus

Ich bin jetzt mehrmals auf diese Ausgabe gestoßen und obwohl die Frage 3 Jahre alt ist, denke ich, dass sie immer noch aktuell ist. Ich habe das Multiple Content Blocks-Plugin manchmal schon erfolgreich verwendet:

https://ltz.wordpress.org/plugins/multiple-content-blocks/

Nach der Installation des Plugins können Sie einfach the_block in Ihre Vorlage einfügen:

<div id="maintext">
   <?php the_content(); ?>
</div>
<div id="products">
   <?php the_block('products') ?>
</div>
<div id="about_company">
   <?php the_block('company') ?>
</div>
0

hi, ich entwickle gerade ein Thema mit diesem Setup. Es gibt zwei Möglichkeiten, dies zu erreichen:

widgetized und Fixed Admin Panel (Anpassungsoptionen) 

ich verwende die beiden in meinen Themes wenn Widgets eine .php-Datei mit den Widgets-Abschnitten ein Widget für diesen Abschnitt erstellen

wenn dies im Admin-Panel behoben ist, müssen Sie den Abschnitt .php in Ihre functions.php aufnehmen

bearbeiten * Vorteil von Widgetized ist, dass Sie sie wie in einer normalen Seitenleiste anordnen können

0
delbrosit