• Sago

    (@pezzolla)


    Buonasera,
    Sto cercando di creare uno script che mi permetta di creare dinamicamente delle pagine, qualora non esistessero e, una volta create, di aggiungerle automaticamente al menu, tutto tramite php. L’idea finale sarebbe quella di creare lo script come segue: qualora non esistesse la pagina Genitore, creala, creata la pagina genitore creami la pagina Figlio, una volta create entrambe le pagine aggiungile al menu esistente come voce di menu (per la pagina Genitore) e voce di sottomenu (per la pagina Figlio). Il codice che ho scritto è qeusto:

    function born_to_be_page() {
        if(get_page_by_title('Page Title') == NULL ) {
            parent_page('Page Title');
        }
        if(get_page_by_title('Page Child') == NULL ) {
            child_page('Page Child');
        }
    }
    add_action('init','born_to_be_page');
    
    function parent_page($pageName) {
        $createParentPage = array(
            'post_title'    => $pageName,
            'post_content'  => 'Some Content',
            'post_status'   => 'publish',
            'post_type'     => 'page',
            'post_name'     => '$pageName'
        );
        // Insert the post into the database
        $parentPage = wp_insert_post($createParentPage);
    }
    
    function child_page($pageName) {
        $createChildPage = array(
            'post_title'    => $pageName,
            'post_content'  => 'Some Content',
            'post_status'   => 'publish',
            'post_author'   => 1,
            'post_type'     => 'page',
            'post_parent'   => 158,
            'post_name'     => '$pageName'
        );
        // Insert the post into the database
        wp_insert_post($createChildPage);
    }
    
    function test( $items, $args ) {
        if($parentPage!==NULL && $args->theme_location == 'primary') {
            $items .= $parentPage;
        }
        return $items;
    }

    Ho provato a fare in modo, solo per testare l’esatto funzionamento dello script, che si aggiungesse al menu solo pagina genitore per ora. Ma per ora ancora non riesco.

    Qualcuno potrebbe suggerirmi dove sbaglio.

    Grazie mille.

Stai visualizzando 1 risposte (di 1 totali)
  • Moderatore Guido Scialfa

    (@wido)

    Ciao @pezzolla,

    Prova a dare uno sguardo a questa modifica http://pastebin.com/Q1qZAHAd che fa uso della funzione wp_update_nav_menu_item necessaria appunto a creare il menu item nel menu prescelto.

    Testato su WordPress 4.7 con tema twentyseventeen e php 7.

    Ps. Attenzione che la chiamata a get_term_by('slug', 'primary', 'nav_menu' )->term_id va modificata usando il nome di un menu esistente, inoltre effettuerei proprio dei check prima di usare il term_id.

    • Questa risposta è stata modificata 7 anni, 11 mesi fa da Guido Scialfa. Motivo: better code explanation
Stai visualizzando 1 risposte (di 1 totali)
  • Il topic ‘Creare Pagina genitore, pagina figlia e aggiungerli al menu esistente’ è chiuso a nuove risposte.