Comment inclure le contenu d'une ou plusieurs pages dans une autre page?
ex. J'aipageA,pageBetpageCet je souhaite inclure le contenu de ces pages danspageX
existe-t-il une fonction wordpress qui charge le message d'une page/d'un message spécifique?
comme show_post ("pageA") ??
Bonjour @dany:
Il n’existe pas de fonction show_post()
en soi dans WordPress, mais il est extrêmement facile d’écrire:
function show_post($path) {
$post = get_page_by_path($path);
$content = apply_filters('the_content', $post->post_content);
echo $content;
}
Notez que cela serait appelé avec le chemin de la page, c'est-à-dire:
<?php show_post('about'); // Shows the content of the "About" page. ?>
<?php show_post('products/widget1'); // Shows content of the "Products > Widget" page. ?>
Bien sûr, je ne nommerais probablement pas une fonction aussi générique que show_post()
au cas où le noyau WordPress ajouterait une fonction du même nom à l'avenir. Votre choix cependant.
En outre, et sans aucune intention légère destinée à @kevtrout _ parce que je sais qu'il est très bon, pensez à poster vos questions WordPress sur le site soeur de StackOverflow WordPress Answers à l'avenir. Il y a un pourcentage beaucoup plus élevé de passionnés de WordPress qui répondent aux questions là-bas.
J'espère que cela t'aides.
-Mike
Les pages ne sont que des publications, avec un type de page "post" dans la base de données. Vous pouvez afficher le contenu de plusieurs pages sur une autre page en écrivant dans votre modèle pageX une requête de publication qui récupère les publications que vous spécifiez et les affiche dans une boucle.
Il existe trois façons d'obtenir du contenu de publication à partir de la base de données:
Ces liens pointent tous vers le Codex WordPress. Get_posts et query_posts ont un argument disponible, 'page_id', dans lequel vous pouvez spécifier l'id de la page que vous souhaitez récupérer et afficher.
J'ai trouvé cette réponse posté sur les forums Wordpress. Vous ajoutez un peu de code à functions.php, puis utilisez un shortcode à votre guise.
function get_post_page_content( $atts ) {
extract( shortcode_atts( array(
'id' => null,
'title' => false,
), $atts ) );
$the_query = new WP_Query( 'page_id='.$id );
while ( $the_query->have_posts() ) {
$the_query->the_post();
if($title == true){
the_title();
}
the_content();
}
wp_reset_postdata();
}
add_shortcode( 'my_content', 'get_post_page_content' );
Pour le shortcode,
[my_content id="Enter your page id number" title=Set this to true if you want to show title /]
Vous pouvez installer un plugin "Improved Include Page" . Une fois installé, vous créez la page X et entrez:
[include-page id="123"]
[include-page id="124"]
[include-page id="125"]
où ce sont les identifiants des pages A, B et C respectivement
<?php query_posts('p=43');
global $more;
//set $more to 0 in order to only get the first part of the post
$more = 0;
// the Loop
while (have_posts()) : the_post();
// the content of the post ?>
the_title();
the_content();
endwhile; ?>
Ceci est évidemment une partie de la publication, j'ai eu le détail du codex wordpress.
Il existe une fonction Wordpress permettant d'afficher le contenu d'une page particulière dans une autre à l'aide de query_posts ().
<?php query_posts("posts_per_page=1&post_type=page&post_id=134"); the_post(); ?>
Vous définissez le nombre de pages à afficher sur 1, le type de publication est la page au lieu de la publication et l'identifiant de la page.
La solution de forum wordpress de Kit Johnson avec la création d'un shortcode fonctionne, mais ajoute la page insérée en haut de la nouvelle page, pas l'endroit où le shortcode a été ajouté. Bien que proche, et peut travailler pour d'autres personnes.
de la publication wordpress, j'ai reconstitué ce qui insère la page où est placé le shortcode:
function get_post_page_content( $atts ) {
extract( shortcode_atts( array(
'id' => null,
'title' => false,
), $atts ) );
$output = "";
$the_query = new WP_Query( 'page_id='.$id );
while ( $the_query->have_posts() ) {
$the_query->the_post();
if($title == true){
$output .= get_the_title();
}
$output .= get_the_content();
}
wp_reset_postdata();
return $output;
}
Ensuite, le bit shortcode fonctionne comme prévu. Si vous ne voulez pas le titre, title = false ne fonctionne pas, vous devez laisser le titre complètement.
Intéressant ... J'ai cherché autour de moi comment intégrer du contenu Wordpress ailleurs (comme sur un autre site Web), et j'ai trouvé des choses ...
J'espère que ceux-ci sont quasi utiles. Bien qu'elles constituent toutes des solutions pour obtenir votre contenu WP à un endroit autre que WP ..., elles peuvent fonctionner pour votre question et vous permettre d'afficher A, B et C sur X.