Erstellen Sie Seiten automatisch, wenn sie nicht vorhanden sind

Ich habe eine WPMU-Instanz, die weniger wie ein Netzwerk von Blogs funktioniert und eher wie eine ganzheitliche Anwendung. Ich muss überprüfen, ob 3 Seiten mit den Slugs “home”, “login” und “password” existieren. Wenn nicht, muss das System sie automatisch generieren. Wenn dies der Fall ist, muss das System ignoriert werden.

Im Moment habe ich den folgenden Code, und aus irgendeinem Grund erzeugt es jedes Mal 5 Beiträge, wenn eine Seite geladen wird. Hat jemand Tipps, wie ich das besser erreichen könnte?

function check_pages_live(){ if(get_page_by_title( 'home', page ) != NULL) { create_pages_fly('home'); } if(get_page_by_title( 'login', page ) != NULL) { create_pages_fly('login'); } if(get_page_by_title( 'password', page ) != NULL) { create_pages_fly('password'); } } add_action('init','check_pages_live'); function create_pages_fly($pageName) { $createPage = array( 'post_title' => $pageName, 'post_content' => 'Starter content', 'post_status' => 'publish', 'post_author' => 1, 'post_type' => 'page', 'post_name' => $pageName ); // Insert the post into the database wp_insert_post( $createPage ); } 

Solutions Collecting From Web of "Erstellen Sie Seiten automatisch, wenn sie nicht vorhanden sind"

Ich denke du willst:

 if( get_page_by_title( 'home' ) == NULL ) create_pages_fly( 'home' ); 

Ihre ursprüngliche if Bedingung sagte, wenn die Seite existiert (ist nicht gleich NULL), dann erstellen Sie die Seite. Außerdem sollte das zweite Argument eine Zeichenkette sein, obwohl es in diesem Fall keine Rolle spielt, da es sowieso nur auf 'page' paginieren” wird.

Sehr praktische function, ich werde das für einige meiner Arbeiten anpassen. Eine kleine Verbesserung, die ich machen würde, um es ein bisschen mehr zu rationalisieren, ist, die get_by_title () Aktion in eine function zu bringen, so dass Sie das auf jeder Seite einfach aufrufen können.

Ex:

 function create_page_if_null($target) { if( get_page_by_title($target) == NULL ) { create_pages_fly($target); } } function check_pages_live(){ create_page_if_null('about'); create_page_if_null('contact-us'); create_page_if_null('home'); create_page_if_null('news'); create_page_if_null('privacy'); }