Afficher des sous-pages statique à la manière des billets de blog (Créer un compte)

  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 31)
  • Auteur
    Messages
  • #452963
    Sushitronic
    Membre
    Initié WordPress
    29 contributions

    Salut,

    Ma configuration WP actuelle
    – Version de WordPress :2.2
    – Thème utilisé :le mien en construction, & tiger style administration
    – Plugins en place : cformsII, DD sitemap generator, dashboard editor, image manager, role manager, search everything, see also, NAVT.
    – Nom de l’hebergeur :local pour l’instant
    – Adresse du site :http://localhost/wordpress lool

    Ah les joies de découvrir wordpress… ses possibilités infinies… Bon je vais la faire en bref plutôt!
    Je voudrait utiliser WordPress comme site pour une petite ville à coté de chez moi (et ayant laissé tomber Joomla, beaucoup trop complexe pour ce type de site), et ça fait quelques jours que je galère pour adapter une navigation typée CMS. Après des heures de recherches sur la toile en général et ici en particulier… j’ai réussi grâce au plugin NAVT et aux widgets… (chose que je découvre étant Dotclearien 1.5 de souche…lol).

    Me reste un problème:

    J’utilise essentiellement les pages statiques bien entendu, mais je garde le flux temporel spécifique aux catégories pour n’en créer qu’une seule “les news” qui s’affiche(nt) en page d’accueil.
    Là vous avez en gros la structure du site.

    Je voudrait cependant pouvoir voir le contenu des sous-pages dans les pages mères, un peu à la manière des billets dans les catégories. Je sais pas si je suis clair là…

    Concrètement, j’ai un menu: la vie en ville (juste un alias du plugin NAVT) avec des pages: cadre de vie, culture, sport & loisir.

    Prenons par exemple ma page cadre de vie, j’ai 4 sous pages (“chantiers en cours”, “voirie”, “urbanisme”, “collecte des déchets”) que je voudrait traiter comme des articles à la manière des billets sur un blog classique (Titre, contenu+ lire la suite)… Bien quand on clique sur la page mère cadre de vie je voudrait afficher mes 4 sous pages de cette façon sur cette seule et même page.

    J’espère avoir été assez clair…

    Je ne sais pas si la logique vous semble bonne déjà, si vous avez mieux, faite le moi savoir. Sinon, si la logique est bonne comment réaliser ceci (un plugin? les mains dans le cambouis?). Vu mes capacités assez restreintes en prog. je pencherai plus sur un plugin, lol mais bon si faut creusé dans le code… advienne que pourra.

    Merci de votre attention en tout cas (heureusement que j’ai dit que je vous la fesait en bref!)

    #604627
    yumiam
    Membre
    Padawan WordPress
    98 contributions

    j’avais posé une question similaire ( en fin… je crois… si j’ai bien compris ta question)
    http://www.wordpress-fr.net/support/sujet-4965-modele-affiche-pages-comme-categorie-articl
    je n’ai toujours pas trouvé de reponse à celle-ci

    #604628
    Sushitronic
    Membre
    Initié WordPress
    29 contributions

    effectivement il semble que ça soit pour arriver a ce type de page ta question… et je vois qu’elle date la question… aie aie, pas de réponse!

    #604629
    Nadji
    Membre
    Initié WordPress
    15 contributions

    Salut,
    Je pense pas pouvoir vous aidez beaucoup, mais sur le codex il y’a d’indiquer la technique pour afficher les sous page un peu de la même manière que de lister les pages, jetez un œil dessus, en espérant que ça vous aideras un peu, même si c’est pas exactement ce que vous cherchez.

    #604630
    dlo
    Participant
    Maître WordPress
    1850 contributions

    Une petite proposition qui s’approche de ce que vous voulez faire :

    1) Création d’un templage appelé motherpage.php pour afficher les filles éventuelles d’une page après le contenu de celle-ci. Voici le code:

    
    
    
    	<div id="content" class="narrowcolumn">
    
    		
    		<div class="post" id="post-“>
    		<h2></h2>
    			<div class="entry">
    				<?php the_content('<p class="serif">Read the rest of this page »</p>‘); ?>
    
    				 ‘<p><strong>Pages:</strong> ‘, ‘after’ => ‘</p>‘, ‘next_or_number’ => ‘number’)); ?>
    
    			</div>
    			ID)) { ?>
    			<div id="children">
    				<ul>
    				ID.”&depth=1&sort_column=menu_order”); ?>
    				</ul>
    			</div>
    			
    		
    	<?php edit_post_link('Edit this entry.', '<p>‘, ‘</p>‘); ?>
    	</div>
    
    	

    2) Ensuite, il faut écrire une page, lui attribuer le template ci-dessus comme template d’affichage.
    3) Enfin, la liste de toutes les pages qui seront déclarées filles de celle-ci seront affichées à la suite de la page-mère.

    En espérant que cela réponde à votre demande.

    Cordialement

    #604631
    yumiam
    Membre
    Padawan WordPress
    98 contributions

    sauf erreur, tout le contenu est afficher ici, il n’y a pas de possibilité d’afficher le début du contenu avec le lien ” voir la suite” pour chaque page ?

    #604632
    dlo
    Participant
    Maître WordPress
    1850 contributions
    yumiam wrote:
    sauf erreur, tout le contenu est afficher ici, il n’y a pas de possibilité d’afficher le début du contenu avec le lien ” voir la suite” pour chaque page ?

    Non, en fait, dans ma proposition le contenu des pages filles n’apparait pas du tout car la fonction wp_list_pages() ne renvoit qu’une liste de lien vers les pages. Seul, le titre de la page fille est affiché.

    Pour avoir un extrait de la page en plus, il faudrait faire un peu plus de développement. C’est possible avec un peu de travail… :rolleyes:

    Cordialement

    #604633
    Sushitronic
    Membre
    Initié WordPress
    29 contributions

    ok je me vais me pencher la dessus ce soir… je vous tiens au courant. merci en tout cas pour l’intérêt porté a la question 😉

    #604634
    Sushitronic
    Membre
    Initié WordPress
    29 contributions

    Bon ça marche… mais effectivement ça ne renvoie qu’une liste de lien… merci en tout cas dlo.
    Je creuse la piste, donc et mes recherche (notamment sur le codex) me mène sur cette page… un excellent plugin qui fait la partie qui manquait précédemment à savoir inclure une page (fille par exemple 🙂 ) dans le template d’une autre (mère).

    ça marche niquel, j’ai réussi à rentré mes 4 pages filles dans la page mère avec la présentation type titre-teaser-more).

    Le probleme restant est donc de réaliser une boucle qui automatise tout ça… en gros il faut réussir à trouver l’ID de chaque page fille (ici dans mon bout de code exemple 44, 45, 46, 47) de manière à eviter de rentrer l’info “en dur” dans le template (si par exemple mon utilisateur final veut créer une nouvelle page 😕) et de n’appeler la fonction qu’une seule fois dans une boucle avec la variable id… et là :boulet: je sèche!

    (je sais pas si j’ai été très clair là )

    Fin de mes recherche nocturnes pour aujourd’hui. Et encore merci de l’intérêt que vous pourriez porter à mon projet.

    #604636
    Sushitronic
    Membre
    Initié WordPress
    29 contributions

    Salut,
    Toujours pas d’idée a propos de ma boucle! sniff

    Pour info je suis entrain de rediger une serie d’articles sur mon blog sous forme de tuto, enfin c’est un bien grand mots disons plutot sous forme de reflexion… comment transformer wordpress en site classique dynamique (en cms classique quoi)… ma reflexion de a à z (enfin plutot de b à y car je passe sur l’installation, et je passerais aussi sur le graphisme)…

    enfin si ça en intéresse certains http://www.shogun-graphics.com dans la categorie “webmaster”

    #604637
    dlo
    Participant
    Maître WordPress
    1850 contributions
    Sushitronic wrote:
    Toujours pas d’idée a propos de ma boucle! sniff

    Si,si, je suis en train de coder un nouveau template tag qui pourra faire cela, un truc du genre wp_list_child_page(). Si cela t’intéresse, je te le ferai tester.

    #604638
    Sushitronic
    Membre
    Initié WordPress
    29 contributions

    ça roule merci 😉

    #604639
    dlo
    Participant
    Maître WordPress
    1850 contributions

    Bon, premier jet de cette nouvelle merveille de codage !!! 😉

    1) Créer un fichier functions.php dans le répertoire du thème utilisé, s’il n’existe pas déjà.
    2) Copier le code suivant dedans :

    post_password) ) { // if there’s a password
    		if ( $_COOKIE[‘wp-postpass_’.COOKIEHASH] != $pid->post_password ) {  // and it doesn’t match the cookie
    			$text = __(‘There is no excerpt because this is a protected post.’);
    			return ‘<p>‘ . $text . ‘</p>‘;
    		}
    	}
    	$text = apply_filters(‘the_content’, $pid->post_content);
    	$text = str_replace(‘]]>’, ‘]]>’, $text);
    	$text = strip_tags($text);
    	$excerpt_length = 55;
    	$words = explode(‘ ‘, $text, $excerpt_length + 1);
    	if (count($words) > $excerpt_length) {
    		array_pop($words);
    		array_push($words, ‘[…]’);
    		$text = implode(‘ ‘, $words);
    	}
    
    	return apply_filters(‘the_excerpt’, $text);
    }
    
    function dlo_the_title(&$pid) {
    	$title = $pid->post_title;
    	if ( !empty($pid->post_password) )
    		$title = sprintf(__(‘Protected: %s’), $title);
    	else if ( ‘private’ == $pid->post_status )
    		$title = sprintf(__(‘Private: %s’), $title);
    
    	return apply_filters(‘the_title’, $title);
    }
    
    function dlo_the_permalink(&$pid) {
    	return apply_filters(‘the_permalink’, get_permalink($pid->ID));
    }
    
    function dlo_list_posts($args) {
    
    	$result = ”;
    	if ( is_array($args) )
    		$r = &$args;
    	else
    		parse_str($args, $r);
    
    	extract($r, EXTR_SKIP);
    
            $dloposts = get_posts($args);
    	if (!empty($dloposts)) {
    		$result = ‘<div id="dlo_post_list"><ul>‘;
                    foreach ($dloposts as $dlopost)
                            $result = $result . ‘<li><a href="' . dlo_the_permalink(&$dlopost) . '">‘ . dlo_the_title(&$dlopost) . ‘</a>‘ . ($text_opt == ‘EXCERPT_TEXT’ ? dlo_the_excerpt(&$dlopost) : ”) . ‘</li>‘;
    		$result .= ‘</ul></div>‘;
                }
    
    	return $result;
    
    }
    
    // The template tag function
    function dlo_list_child_pages($id, $txtopt = ‘NO_TEXT’, $echo = true) {
    
            $args = ‘post_type=page&post_parent=’ . $id . ‘&text_opt=’ . $txtopt;
    
            if ( $echo )
    			echo dlo_list_posts($args);
    		else
    			return dlo_list_posts($args);
    
    }
    ?>

    3) Créer un template pour afficher une page mère avec ses filles à la suite:

    
    
    
    	<div id="content" class="narrowcolumn">
    
    		
    		<div class="post" id="post-“>
    		<h2></h2>
    			<div class="entry">
    				<?php the_content('<p class="serif">Read the rest of this page »</p>‘); ?>
    
    				 ‘<p><strong>Pages:</strong> ‘, ‘after’ => ‘</p>‘, ‘next_or_number’ => ‘number’)); ?>
    
    			</div>
                            ID, ‘EXCERPT_TEXT’) ?>
    		
    	<?php edit_post_link('Edit this entry.', '<p>‘, ‘</p>‘); ?>
    	</div>
    
    	

    4) Ecrire une page mère et lui donner “page with sons” comme modèle de page dans l’éditeur visuel.
    5) Et plusieurs pages filles en leur affectant la page mère ci-dessus.
    6) Servir frais et profiter du résultat !

    PS: il est possible de n’afficher que le titre de la page fille en supprimant le deuxième paramètre de la fonction dlo_list_child_pages().

    Dites-moi ce que vous en pensez. Il y a surement des améliorations possibles. Si je vois que cela intéresse du monde, j’en ferai un plugin un peu mieux packagé.

    Cordialement

    #604640
    Sushitronic
    Membre
    Initié WordPress
    29 contributions

    c génial dlo… cela marche avec un peu de bidouille en plus.

    J’ai du modifier un truc dans la fichier php.ini à savoir le ” allow_call_time_pass_reference” que j’ai du mettre sur on au lieu de off. Je ne sais pas a quoi ça correspond excatement.

    Puis avec un peu d’adaptation de template j’ai reussi a afficher les page effectivement mais elles ne sont pas dans le bon ordre (les id de page fille semble trier de maniere decroissante). ou peut-on modifier ça dans la fonction stp?

    Et une derniere chose… j’ai pas le lien “lire la suite” j’ai […] a la place… en fait sur mes 4 page fille exemples (l’une a la base était affichée en entier et les autres avec un “read more” or là elle sont toutes coupés avec ce […]. Je vois pas d’où ça peu venir?

    En tout ca merci beaucoup, ça rend tout de suite la navigation plus pratique selon mon idée de départ. j’espère que cela va servir à d’autres; ça sous forme de plugin 🍺.

    #604641
    Sushitronic
    Membre
    Initié WordPress
    29 contributions

    rectification je vois d’ou le […] vient mais a part modifie le nombre de mots a afficher je vois pas comment le remplacer par un read-more…

15 sujets de 1 à 15 (sur un total de 31)
  • Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.