2016-12-21 1 views
0

Ich erstelle ein kleines Skript, um eine Seite dynamisch zu erstellen, wenn das nicht existiert, aber ich habe ein Problem. Ich möchte der Seite, die ich erstellen werde, eine übergeordnete Seite geben.Wordpress. Wie man die Elternseite einer Seite gibt create dinamiccaly in PHP

In wenigen Worten so etwas wie:

, wenn die Seite erstellt wird, gibt ihm eine übergeordnete Seite.

Die Ausgabe, die ich will, ist:

http://exemple.com/ParentPage/ChildPage

und in der Show-Backend automatisch die übergeordnete Seite in dem Seitenattribut statt "(ohne Eltern)"

function check_pages_live(){ 
    if(get_page_by_title('Page Title') == NULL) { 
     create_pages_fly('Page Title'); 
    } 

} 
add_action('init','check_pages_live'); 

function create_pages_fly($pageName) { 

    $parentPost = get_post(2167); 

    $createPage = array(

     'post_title' => $pageName, 
     'post_content' => 'Some Content', 
     'post_status' => 'publish', 
     'post_author' => 1, 
     'post_type'  => 'page', 
     'post_parent' => $parentPost, 
     'post_name'  => $pageName 
    ); 

    // Insert the post into the database 
    wp_insert_post($createPage); 
} 

I‘ Ich habe versucht, eine Klasse mit get_post und der ID der übergeordneten Seite zu erstellen. Ich habe das zur Funktion hinzugefügt, aber nichts funktioniert.

Jemand kann mir bitte helfen?

viel danken

+0

Die Dokumentation ist der Schlüssel zu Ihrer Antwort: https://developer.wordpress.org/reference/functions/wp_insert_post/ – elicohenator

Antwort

0

Mit Blick auf die docs, 'post_parent' sollte eine ganze Zahl sein. Wenn Sie es auf 'post_parent' => 2167 setzen, sollte das der Fall sein.

+0

Ich werde versuchen, 'post_parent' => 2167 zu setzen, aber scheint nicht den Trick zu tun. – Sago

+0

Was ist das Ergebnis von wp_insert_post ($ createPage, true); ? Es sollte eine Fehlermeldung zurückgeben, die helfen sollte, das Problem weiter zu beheben. –

+0

vielen Dank für die Hilfe. Ich repariere den Text. anstelle von wp_create_post ($ createPage); Ich versuche wp_insert_post ($ createPage); und es funktioniert – Sago

Verwandte Themen