web-dev-qa-db-fra.com

Plugins Pages Virtuelles

J'ai du mal à faire fonctionner le plugin Pages virtuelles (plugin WordPress pour faciliter la création de pages virtuelles)

J'ai eu modifier pour créer une boucle basée sur une requête.

add_action( 'gm_virtual_pages', function( $controller ) {
/* Creating virtuals pages for companies */ 
$args = array( 'post_type' => array('companies',), 'post_status' => array('publish',), );
$the_query = new WP_Query( $args ); if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();

   // Creations des pages
   $controller->addPage( new \GM\VirtualPages\Page( '/companies/'.$the_query->post->post_name.'/about' ) )
     ->setTitle( 'About Us' )
     ->setContent( get_the_content() )
     ->setTemplate( 'custom-page.php' );

endwhile;
endif;

custom-page.php se trouve dans le dossier du thème enfant et le contrôleur dans le thème racine. J'ai essayé de mettre tous les fichiers dans le thème parent, mais c'est la même chose.

J'ai pris le code exact à télécharger , moins une Virgule à la section "Comment utiliser tu".

$controller->addPage( new \GM\VirtualPages\Page( "/custom/page" ) )
 ->setTitle( 'My First Custom Page' )
 ->setContent( '<p>Hey, this is my first cutom virtual page!</p>' );
 ->setTemplate( 'custom-page.php' )

Ligne 3, le n'est pas; à la fin. Plutôt que tout est pareil. Je vérifie le code de téléchargement et le code publié/commenté.

  • $Title renvoie "À propos de nous"
  • $content renvoie le contenu du message mais
  • $Template renvoie page.php, et si j’ai raison, il devrait renvoyer custom-page.php, ou du moins, s’il s’agit d’une inclusion, je devrais voir le contenu de custom-page.php dans la page.

J'ai suivi tout le processus, tout lu, mais je ne travaillais toujours pas. Quelqu'un pourrait-il essayer de résoudre ce problème avant de passer à une autre méthode?

3
Groupe Wibi

Je suis l'auteur de ce plugin et je peux confirmer qu'il y avait un problème.

C'était dans la méthode GM\VirtualPages\TemplateLoader::init(); .

Le problème était dû à un basculement non testé de array_merge à wp_parse_args.

Ils sont similaires, mais je devrais passer à l’ordre inverse des arguments pour passer de l’un à l’autre. Honte sur moi.

J'ai corrigé cela dans le Gist ( source ) maintenant cela devrait fonctionner.

4
gmazzap