So erstellen Sie programmgesteuert eine neue WordPress-Seite

Lesezeit: 1 Minute

Benutzeravatar von Sppidy
Schnell

Ich erstelle ein Plugin in WordPress. Ich kann keine Möglichkeit finden, eine neue WordPress-Seite mit dem Plugin zu erstellen. Ich möchte eine neue Seite am Frontend von WordPress erstellen, wenn der Benutzer das Plugin aktiviert.

Benutzeravatar von sonu pokade
sonu pokade

Mit Hilfe des obigen Codes können Sie eine dynamische Seite erstellen. Zuerst müssen wir prüfen, ob der Beitrag, den wir erstellen werden, verfügbar ist oder nicht. Falls vorhanden, müssen Sie keine weitere erstellen, Sie können den Inhalt der Seite bearbeiten. Aber wenn Sie den Titel der Seite geändert haben, wird eine neue Seite erstellt. Hier habe ich eine Seite mit Hilfe des Titels der Seite erstellt.

$check_page_exist = get_page_by_title('title_of_the_page', 'OBJECT', 'page');
// Check if the page already exists
if(empty($check_page_exist)) {
    $page_id = wp_insert_post(
        array(
        'comment_status' => 'close',
        'ping_status'    => 'close',
        'post_author'    => 1,
        'post_title'     => ucwords('title_of_the_page'),
        'post_name'      => strtolower(str_replace(' ', '-', trim('title_of_the_page'))),
        'post_status'    => 'publish',
        'post_content'   => 'Content of the page',
        'post_type'      => 'page',
        'post_parent'    => 'id_of_the_parent_page_if_it_available'
        )
    );
}

  • replace: ` ‘post_name’ => strtolower(str_replace(‘ ‘, ‘-‘, trim(‘title_of_the_page’))), ` with: ` ‘post_name’ => sanitize_title(‘title_of_the_page’), ` <-- verwendet WordPress Funktion developer.wordpress.org/reference/functions/sanitize_title

    – dj.cowan

    13. Juli 2020 um 6:12 Uhr


Etwas wie das

function some_function()
{
   $post_details = array(
  'post_title'    => 'Page title',
  'post_content'  => 'Content of your page',
  'post_status'   => 'publish',
  'post_author'   => 1,
  'post_type' => 'page'
   );
   wp_insert_post( $post_details );
}

register_activation_hook(__FILE__, 'some_function');

Sehen hier für andere mögliche Parameter.

  • Vielen Dank, es hat funktioniert 🙂 Was ist, wenn ich dynamische Inhalte haben möchte? Ich meine, der Inhalt ändert sich jeden Tag durch die Datenbank. während wir hier unter dem Index “post_content” statische Daten angeben

    – Flink

    7. September 2015 um 15:37 Uhr

  • Ich bin mir nicht sicher was du meinst. Vielleicht könntest du das genauer erklären? Wenn Sie den Inhalt ändern möchten, aktualisieren Sie die erstellte Seite, wenn Sie sie brauchen, denke ich (die ID davon wird von wp_insert_post zurückgegeben).

    – Igor Jawytsch

    7. September 2015 um 15:58 Uhr

  • Unter dem post_content-Index von $post_details geben wir einen statischen Wert an, der “Inhalt Ihrer Seite” ist. Jetzt ist meine Frage, wie ich diesen Wert erneut bearbeiten kann. zum Beispiel möchte ich die Seite mit diesem Wert aktualisieren”

    Dies ist ein einfacher Absatz.

    – Flink

    7. September 2015 um 16:01 Uhr

  • Wie so $post_details = array( 'ID' => $id, 'post_content' => '<p>This is a simple paragraph.</p>', ); wp_update_post( $post_details ); Sie können die ID der neu erstellten Seite von wp_insert_post so erhalten $id=wp_insert_post( $post_details );

    – Igor Jawytsch

    7. September 2015 um 16:09 Uhr


  • Sie müssen keine Tabelle erstellen. Du kannst tun update_option( 'my_option_key', $id ); auf Aktivierung Haken, und dann get_option('my_option_key') um diese ID zu erhalten, wenn Sie es tun. Außerdem sollten Sie prüfen, ob diese Option vorhanden ist, bevor Sie eine Seite erstellen (um zu verhindern, dass mehrere Seiten bei mehreren Aktivierungen erstellt werden).

    – Igor Jawytsch

    7. September 2015 um 16:32 Uhr


Eine praktische Hilfsfunktion zum Erstellen mehrerer Seiten:

function create_page($title_of_the_page,$content,$parent_id = NULL ) 
{
    $objPage = get_page_by_title($title_of_the_page, 'OBJECT', 'page');
    if( ! empty( $objPage ) )
    {
        echo "Page already exists:" . $title_of_the_page . "<br/>";
        return $objPage->ID;
    }
    
    $page_id = wp_insert_post(
            array(
            'comment_status' => 'close',
            'ping_status'    => 'close',
            'post_author'    => 1,
            'post_title'     => ucwords($title_of_the_page),
            'post_name'      => strtolower(str_replace(' ', '-', trim($title_of_the_page))),
            'post_status'    => 'publish',
            'post_content'   => $content,
            'post_type'      => 'page',
            'post_parent'    =>  $parent_id //'id_of_the_parent_page_if_it_available'
            )
        );
    echo "Created page_id=". $page_id." for page '".$title_of_the_page. "'<br/>";
    return $page_id;
}

create_page( 'How it works', 'This is how it works');
create_page( 'Contact Us', 'The contact us page');
create_page( 'About Us', 'The about us page');
create_page( 'Team', 'The team page');
$pid = create_page( 'Sample Page', 'This is sample page');
create_page( 'Sample SubPage 1', 'This is sample SubPage 1',$pid);
create_page( 'Sample SubPage 2', 'This is sample SubPage 2',$pid);

Benutzeravatar von Ghulam Ali
Ghulam Ali

Auf diese Weise können Sie Seite hinzufügen

// Create post object
 $my_post = array(
   'post_type'     => 'page',
   'post_title'    => 'My post',
   'post_content'  => 'This is my post.',
   'post_status'   => 'publish',
   'post_author'   => 1
 );

 // Insert the post into the database
wp_insert_post( $my_post );

Einzelheiten finden Sie hier https://codex.wordpress.org/Function_Reference/wp_insert_post

1401580cookie-checkSo erstellen Sie programmgesteuert eine neue WordPress-Seite

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy