web-dev-qa-db-fra.com

Extraire des types de contenu personnalisés dans un modèle de page

J'ai cherché partout une solution, mais je n'ai pas encore trouvé de solution. Voici la situation. J'ai créé un type de contenu personnalisé à l'aide du plugin Custom Content Type Manager et dois maintenant utiliser ces types de publication personnalisés dans les pages que j'ai créées dans WP.

J'ai donc créé une page appelée "Photos" et utilisé un modèle de fichier php pour configurer la mise en page/les styles de la page. Le plugin a généré un exemple de modèle pour moi afin d’obtenir les champs personnalisés que j’ai insérés. Cela ressemble à ceci:

get_header(); ?>
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
    <h1><?php the_title(); ?></h1>
        <?php the_content(); ?>
        <?php the_author(); ?>

        <h2>Custom Fields</h2>  
        <strong>Image:</strong> <?php list($src, $w, $h) = get_custom_field('image:to_image_array');?>

        <img src="<?php print $src; ?>" height="<?php print $h; ?>" width="<?php print $w ?>" /><br />

<?php endwhile; // end of the loop. ?>

Le problème:

Quand j'utilise "the_content ();" et les autres méthodes php, ils extraient le contenu de la page intitulée "Photos", et non le contenu du type de contenu personnalisé créé avec ce plugin.

Est-ce qu'il y a quelque chose que je peux écraser/réécrire pour que the_content (); du type de contenu personnalisé apparaît au lieu du contenu des pages? Existe-t-il un meilleur moyen de procéder ainsi que de créer des pages WP et d'utiliser des modèles personnalisés? Je suis assez nouveau dans cette WP entreprise de programmation ..

1
Romes

La boucle dans votre code va automatiquement extraire des données de l'ID de la page actuelle (c'est-à-dire des photos). Vous devez définir la requête pour laquelle les données que vous recherchez. Assurez-vous de remplacer photo par le slug correspondant à votre type de message.

Voir http://codex.wordpress.org/Class_Reference/WP_Query pour connaître les autres arguments que vous pouvez utiliser en plus de post_type.

<?php

$query = new WP_Query( array( 'post_type' => 'photo' ) );

if ( $query->have_posts() ) :

    while ( $query->have_posts() ) : $query->the_post(); ?>

             <?php the_title(); ?>

    <?php endwhile;

endif;

?>
3
developdaly

Je pense que ce qui se passe ici est que WP remarque que votre URL se termine par "photos" et qu'il structure donc une requête en fonction de cela. Tu ne veux pas ça. Vous devez configurer votre propre requête. Ce fil devrait vous donner une idée de la structure de votre requête.

2
Adam Rice