X

So erstellen Sie eine Seite, wenn das Theme aktiviert wird

Schnipsel von IsItWP

Suchen Sie nach einer Möglichkeit, beim Aktivieren des Themes automatisch eine neue Seite (oder mehrere) zu erstellen? Es gibt wahrscheinlich ein Plugin dafür, aber wir haben einen schnellen Code-Schnipsel erstellt, den Sie verwenden können, um eine neue Seite in WordPress zu erstellen.

Wenn Sie möchten, dass Ihr Theme oder Plugin selbstständig eine neue Seite (oder zwei oder drei) erstellt, hier ist ein schneller Code dafür. wp_insert_post gibt die ID der neu erstellten Seite zurück. Im Fehlerfall gibt es 0 zurück, wenn $wp_error auf false gesetzt ist, oder ein WP_Error-Objekt, wenn $wp_error auf true gesetzt ist.

Anweisungen:

Alles, was Sie tun müssen, ist, diesen Code in die index.php-Datei Ihres Themes über dem Hook einzufügen.

Und natürlich könnte dieser Code verwendet werden, um einen POST oder jeden anderen benutzerdefinierten Beitragstyp-Inhalt zu erstellen, indem einfach der Wert für post_type geändert wird.

<?php
$new_page = array(
	'slug' => 'this-is-my-new-page',
	'title' => 'Write a Headline that Captivates',
	'content' => "Enter the body Content for your Page here"
);
$new_page_id = wp_insert_post( array(
	'post_title' => $new_page['title'],
	'post_type' 	=> 'page',
	'post_name'	 => $new_page['slug'],
	'comment_status' => 'closed',
	'ping_status' => 'closed',
	'post_content' => $new_page['content'],
	'post_status' => 'publish',
	'post_author' => 1,
	'menu_order' => 0
));
?>

Oder Sie könnten stattdessen diesen Code verwenden. Dieser Schnipsel prüft, ob eine Seite mit dem Titel in Zeile 3 bereits existiert, und erstellt die Seite, falls sie noch nicht existiert. Er legt auch eine Seitenvorlage fest, wenn in Zeile 5 eine Seitenvorlage angegeben ist.

Sie müssen diesen Code nur zur functions.php-Datei Ihres Themes oder in ein websitespezifisches Plugin einfügen:

if (isset($_GET['activated']) && is_admin()){
 
    $new_page_title = 'This is the page title';
    $new_page_content = 'This is the page content';
    $new_page_template = ''; //ex. template-custom.php. Leave blank if you don't want a custom page template.
 
    //don't change the code bellow, unless you know what you're doing
 
    $page_check = get_page_by_title($new_page_title);
    $new_page = array(
        'post_type' => 'page',
        'post_title' => $new_page_title,
        'post_content' => $new_page_content,
        'post_status' => 'publish',
        'post_author' => 1,
    );
    if(!isset($page_check->ID)){
        $new_page_id = wp_insert_post($new_page);
        if(!empty($new_page_template)){
            update_post_meta($new_page_id, '_wp_page_template', $new_page_template);
        }
    }
 
}

Hinweis: Wenn Sie zum ersten Mal Code-Schnipsel in WordPress hinzufügen, lesen Sie bitte unseren Leitfaden, wie Sie Code-Schnipsel richtig in WordPress hinzufügen, damit Sie Ihre Website nicht versehentlich beschädigen.

Wenn Ihnen dieser Code-Schnipsel gefallen hat, ziehen Sie bitte in Betracht, unsere anderen Artikel auf der Website zu lesen, wie z. B.: 27 beste WordPress-Themes für Reiseblogs und So sichern Sie Ihre WordPress-Formulare.

Kommentare   Hinterlasse eine Antwort

  1. Wenn ich ein erstklassiges Beispiel für qualitativ hochwertige Inhalte geben müsste, wäre dieser Artikel einer davon. Es ist gut geschriebenes Material, das Ihr Interesse weckt.

  2. Danke. Ich brauche das genau. Lassen Sie mich wissen, mit welchem Hook dieser Code verknüpft werden soll?

  3. Danke, Mann! Hast du eine Lösung für das automatische Einfügen von Taxonomien?

  4. Hallo, in meinem Plugin werden automatisch Seiten und Shortcodes generiert. Ich möchte, dass auf der Detailseite kein Header, Footer und keine Seitenleiste angezeigt werden. Haben Sie eine Idee?

  5. Hallo Kevin. Wie erstelle ich mit dieser Methode mehrere Seiten? Danke..

  6. Ich nehme nicht an, dass es eine Möglichkeit gibt, Benutzer nach der Aktivierung auf die Seite weiterzuleiten, egal welche Permalinks sie eingestellt haben, oder?

    Ich wollte dies verwenden, um eine FAQ-Seite für das Theme zu erstellen und den Benutzer nach der Aktivierung dorthin weiterzuleiten.

    1. Ich glaube nicht, dass das der beste Weg ist, die Dinge zu tun. Sie könnten eine Admin-Seite erstellen, ähnlich wie Leute, die ein Plugin erstellen, und Ihre FAQ oder andere Details dort hinzufügen. Dieses Tutorial auf net.tuts enthält Details zur Erstellung des Admin-Panels für ein Plugin, aber die Idee ist dieselbe.

      http://net.tutsplus.com/tutorials/wordpress/creating-a-custom-wordpress-plugin-from-scratch/

      1. Ja, Sie haben wahrscheinlich Recht. Ich benutze ein Child-Theme für Twenty Eleven und habe noch nicht herausgefunden, wie ich mich in die aktuellen Theme-Optionen einklinken kann. Ich werde wahrscheinlich einfach eine HTML-Seite mit den benötigten Informationen erstellen und darauf verlinken, aber ich werde mir den Link ansehen, danke.

        1. Hallo Zeaks,

          Das Tutorial, das ich gepostet habe, sollte einwandfrei funktionieren! Es sollte keine Rolle spielen, welches Theme
          Sie verwenden. Der Code im Tutorial fügt lediglich Code zu Ihrer functions.php hinzu, um das Admin-Panel zu erstellen. Danach ist es nur noch HTML, um Ihre FAQ oder andere Informationen zu gestalten und anzuzeigen.

    2. Ich glaube nicht, dass das der beste Weg ist, die Dinge zu tun. Sie könnten eine Admin-Seite erstellen, ähnlich wie Leute, die ein Plugin erstellen, und Ihre FAQ oder andere Details dort hinzufügen. Dieses Tutorial auf net.tuts enthält Details zur Erstellung des Admin-Panels für ein Plugin, aber die Idee ist dieselbe.

      http://net.tutsplus.com/tutorials/wordpress/creating-a-custom-wordpress-plugin-from-scratch/

  7. Schön! Vielen Dank!
    Habe gerade Ihren Code verwendet, um auch Menüpunkte hinzuzufügen.
    (‚post_type‘ => ‚nav-menu-item‘)

    1. Hallo Tyson, cool, freut mich, dass ich helfen konnte. Vergessen Sie nicht, mir auf Twitter, Facebook oder RSS zu folgen. Ich poste regelmäßig neue Snippets.

  8. Cliff Paulick 19. Juli 2011, 18:56 Uhr

    Entschuldigung, falls das eine dumme Frage ist, aber warum sollte man das tun?
    Ich habe eine Test-WP-Installation, auf der ich manuell einen neuen Beitrag (oder manchmal eine Seite) erstelle, wann immer ich ein neues Plugin aktiviere – um zu testen, was es kann. Ich sehe den Nutzen eines Seiten-/Beitrag-Generators für diese Aktion, bin mir aber nicht sicher, warum eine neue Seite für die Aktivierung eines Themes. Bitte helfen Sie mir zu verstehen. Danke!

    1. Es gibt keine dummen Fragen auf wpsnipp, das ist eine gute Frage. Nehmen wir an, ich habe ein neues Theme, das mehr wie ein CMS mit einer standardmäßigen statischen Startseite funktioniert. Sie könnten dies in Ihrem Theme verwenden, um die benötigten Seiten für die Person zu erstellen, anstatt sie zu bitten, dies von Hand zu tun. Auf diese Weise könnte ich eine beliebige Anzahl von Seiten für ein Theme erstellen, das ich gerade erstelle, und die Person müsste dann nur noch die Seiten mit den erforderlichen Vorlagen verknüpfen. Aber das ist nur ein Beispiel, es könnte Gründe geben, an die wir noch nicht einmal denken können.

      1. Vignesh Diwakar 20. Februar 2014, 02:15 Uhr

        Wie füge ich diese neue Seite, die von Ihrem Code erstellt wurde, zum Hauptmenü hinzu. (‚post_type‘ => ‚nav-menu-item‘) funktioniert bei mir nicht

    2. Das ist schon etwas alt, aber für mich erstelle ich ein Theme und richte eine benutzerdefinierte Seite ein, die eine Sitemap erstellt, und ich möchte diese Sitemap im Footer verlinken.

      Dies ist ein großartiger Code-Schnipsel, er gibt mir die Gewissheit, dass diese Sitemap-Seite auf der gesamten Website vorhanden sein wird.

  9. Tweets, die erwähnen: Wordpress erstellt Seite bei Theme-Aktivierung – wpsnipp.com Wordpress-Code-Schnipsel für Ihren Blog -- Topsy.com 24. November 2010, 16:32 Uhr

    […] Dieser Beitrag wurde auf Twitter von wp_freak, WPSNIPP erwähnt. WPSNIPP sagte: #wordpress Erstellt Seite bei Theme-Aktivierung http://bit.ly/gTZHVl #blog bitte RT 🙂 […]

Kommentar hinzufügen

Wir freuen uns, dass Sie einen Kommentar hinterlassen haben. Bitte beachten Sie, dass alle Kommentare gemäß unserer Datenschutzrichtlinie moderiert werden und alle Links nofollow sind. Verwenden Sie KEINE Schlüsselwörter im Namensfeld. Lassen Sie uns ein persönliches und bedeutungsvolles Gespräch führen.

WordPress Launch Checkliste

Die ultimative Checkliste für den Start von WordPress

Wir haben alle wichtigen Checklistenpunkte für den Start Ihrer nächsten WordPress-Website in einem praktischen E-Book zusammengefasst.
Ja, senden Sie mir das kostenlose E-Book!