4 façons d’avoir plusieurs pages de blog avec WordPress

WordPress est un super moteur de blog, mieux, il est même un CMS complet. La preuve ? Il propulse la grande majorité des blogs auto-hébergés (bien devant drupal, joomla etc) et est derrière des centaines millions de sites : blogs, sites d’information, sites vitrines, ecommerces…

Cependant, comme tout outil, WordPress a ses limites : il ne permet pas d’avoir plus d’une page de blog (comprendre page qui liste les articles ou posts). Cette limitation est inhérente à l’architecture originelle de WordPress, qui n’est à la base qu’un simple moteur de blog. Mais nous l’avons dit, notre cher WordPress est aujourd’hui un vrai CMS et ses différents usages nécessitent de la souplesse. Voici donc quatre manières d’afficher plusieurs pages d’articles.

De la plus à l’arrache à la plus aboutie, ces différentes techniques ont chacune leurs particularités. Trois d’entre elles se différencient nettement par leur approche au niveau de la base de données, la première, qui est la plus facile à mettre en place, ne nécessite même pas de mettre les mains dans le cambouis (au détriment peut-être d’une certaine flexibilité).

Utilisation des catégories comme pages de blog

Cette technique est d’une simplicité incroyable mais elle reste extrêmement efficace. C’est la seule manière d’obtenir l’effet souhaité sans toucher au code.

Résumons la situation. Vous avez un blog et vous écrivez des articles dans différentes catégories. Vous voulez par exemple avoir une page avec vos articles techniques sur la programmation, et une autre avec les articles qui traitent de l’actualité.

Autre cas, vous avez un e-commerce et vous avez plusieurs gammes de produits. Chaque produit correspond à un post et vous souhaitez qu’une page regroupe les tondeuses 2 temps tandis qu’une autre n’affiche que les tondeuses 4 temps (oui les tondeuses ça change de l’informatique pour l’exemple !).

Dans le menu de WordPress, il vous suffit de vous rendre dans apparence > menus, puis d’ajouter à votre menu la catégorie 2 temps, et la catégorie 4 temps (si votre thème le supporte).

Vous n’avez plus qu’à cocher les catégories correspondantes dans vos articles pour qu’ils se « rangent » automatiquement sur la bonne page !

La limite de cette technique est que votre page de blog principale affiche toujours l’ensemble de vos articles. Vous pouvez mettre une page statique en page d’accueil (ça se fait dans réglages > lecture) et ne pas attribuer de page spécifique à votre page de blogs qui contient tous les articles. Virtuellement, elle sera inexistante.

Cette solution convient tout à fait pour une entreprise qui présente sa philosophie, son expertise ou son domaine d’activité en homepage par exemple. Mais il y a de nombreux cas où la page d’accueil doit être la page qui liste les articles : imaginez un magazine en ligne ou la page d’accueil ne regroupe pas les derniers articles parus ?! Dans ces cas là, il va falloir ouvrir votre éditeur de code !

Deux pages (ou plus) de blogs sur mesure

C’est une technique que j’utilise assez souvent. Vous n’avez qu’une seule interface d’administration, une seule base de données et vous n’ajoutez aucune table. Vous allez créer une ou plusieurs catégories et dire en quelque sorte à WordPress que pour ces catégories, vous voulez qu’il les affiche sur une autre page que celle de blog « normale ». Commençons !

Filtrons les catégories sur la homepage

Puisque certaines catégories seront affichées sur une page à part, il serait pas mal qu’elles ne s’affichent pas aussi sur la page de blog « normale », non ? Pour ce faire, il va falloir ajouter un petit bout de code sur la page index.php de votre thème.

Pas d’empressement cependant ! Il va déjà falloir créer les catégories en question… Créez donc vos catégories puis, allez jetez un oeil dans votre base de données pour récupérer les ID correspondants à ces catégories. Ils sont stockés dans la table wp_terms. Si vous y accédez par PhpMyAdmin, un petit coup de ctrl (cmd pour mac) + f vous donnera un bon coup de main pour trouver la catégorie souhaitée. Par exemple, si je cherche la catégorie What’s Up On Da Web, son slug est whats-up-on-da-web et son ID 6 (c’est uniquement chez moi).

Cette fois vous pouvez ouvrir votre… index.php. C’est bien, vous m’écoutez ! Ajoutez-y donc la ligne suivante – avant le début de la loop, soit le if(have_posts()) : – pour que cette catégorie ne s’affiche plus sur la page :

<?php query_posts($query_string . '&cat=-6'); ?>

Au cas où vous voudriez exclure plusieurs catégories – admettons la catégorie ayant pour ID 8 en plus de la 6 – mettez une virgule puis -8. Comme ceci les amis :

<?php query_posts($query_string . '&cat=-6,-8'); ?>

Toi comprendre ? Bien, poursuivons !

Créons un template de page

Dans l’état actuel des choses, votre page de blog « index » n’affiche déjà plus les articles dont vous avez sélectionné les ID. Vous allez maintenant devoir créer un template pour votre nouvelle page de blog.

Créez donc un fichier, par exemple live.php, et copiez-y tout le contenu du fichier index.php de votre thème. Attention, lorsque je dis tout le index.php, je parle du index.php avant modification, c’est à dire sans query_posts($query_string . '&cat=-6');.

En effet, cette ligne signifie « n’affiche pas le ou les articles dont je te donne le/les id de la/les catégories (en l’occurrence 6) », mais c’est justement sur cette page que l’on voudra afficher ces articles, pensez donc à effacer cette ligne ! Il faut aussi ajouter un tag en haut du fichier php pour que wordpress comprenne qu’il s’agit bien d’un template. Rajoutez ce tag au début du fichier :

<?php /* Template Name: Live */ ?>

Enregistrez ce fichier et placez-le dans le répertoire de votre thème. Dirigez-vous maintenant dans votre interface d’administration, créez une nouvelle page, puis dans le panneau attribut de la page, choisissez le modèle de template que vous venez de créer.

Note : tout dépend de la manière dont est fait votre thème. En ce qui me concerne, j’avais une gestion du cas où la loop ne trouve pas de contenu. C’est à dire qu’avant le :

<?php while(have_posts()) : the_post(); ?>

J’avais une condition qui venait vérifier qu’il y ait bien des posts à afficher :

<?php if(have_posts()) : ?>

Et après la fermeture de ma loop, qui correspond à :

<?php endwhile; ?>

j’avais ma condition qui venait afficher un message d’erreur plus le formulaire de recherche (seulement au cas où il n’y ait aucun article à afficher), comme ceci :

<?php else : ?>
<h2>Oooopppsss...</h2>
<p>Désolé, mais vous cherchez quelque chose qui ne se trouve pas ici .</p>
<?php include (TEMPLATEPATH . "/searchform.php"); ?>
<?php endif; ?>

Tout ce petit monde provoquait des erreurs. J’ai donc viré la ligne du if have posts ainsi que le else suivant la fin de la boucle (ça correspond au deuxième et au dernier des quatre blocs de code ci-dessus).

Note : Enlever cette gestion d’erreurs n’a aucun impact puisqu’on arrive à cette page en général à cause d’une mauvaise url où d’une recherche qui ne correspond à aucun contenu. Dans tous les cas, le index.php du thème s’en chargera (donc ne faites pas la boulette de l’enlever aussi de votre index.php, c’est juste pour votre nouvelle page on est bien d’accord).

Let the magic happen

Si vous vous rendez sur la nouvelle page créée (live.php), vous avez tous les articles, même ceux maintenant disparus de votre home. C’est que tout va bien.

En revanche, si vous avez une page blanche ou une erreur, vous avez peut-être une ancienne version de WordPress. Dans ce cas, je vous conseille très fortement de faire une mise à jour (pour des considérations évidentes de sécurité). Néanmoins, dans les anciennes versions, pour pouvoir lancer la loop d’une autre page que la page de blog « normale », il faut ajouter ces deux lignes au début de votre live.php :

<?php
define('WP_USE_THEMES', false);
require('./wp-load.php');
?>

Ça devrait maintenant marcher !

Quoi qu’il en soit, avoir absolument tous nos articles sur cette page n’est vraiment pas le résultat voulu. On va donc dire à wordpress de n’afficher que les articles d’une catégorie donnée sur cette page. Pour cela, il faut lui adjoindre un autre morceau de code, que vous placerez juste avant la ligne du while(have_posts()) :, de la manière suivante :

<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("category_name=whats-up-on-da-web&paged=$paged");
?>

//la ligne suivante, vous l'avez déjà, ne la mettez donc pas deux fois, 
//il s'agit juste de placer le morceau ci-dessus avant la ligne qui suit
<?php while(have_posts()) : the_post(); ?>

Notez qu’il vous faut placer dans ce bout de code le slug de votre catégorie, ici whats-up-on-da-web.

Deux bases de données

Les deux techniques suivantes sont selon moi moins flexibles. Elles fonctionnent tout à fait et seront certainement adaptées à des situations précises mais me paraissent un peu moins propre dans leur logique.

Quoi qu’il en soit, la logique appliquée à ces deux approches est souvent utilisée pour offrir un espace de blog aux boutiques en lignes. Bien souvent les e-commerce reposent sur le CMS spécialisé Prestashop (il y a aussi Magento ou Oscommerce d’assez populaires), mais ces CMS sont justement assez mauvais dans la gestion de contenu éditorial. Ils excellent pour éditer les fiches produits, regorgent de fonctionnalité pour analyser les données de vente mais ne sont pas capables d’écrire des articles de blogs ou même des pages rédactionnelles avec beaucoup de contenu.

Alors pour tricher, un WordPress est souvent mis en place avec la même charte graphique que le site de e-commerce, on place les bons liens dans le menu de l’un et de l’autre et voilà !

C’est un peu la méthode à la wanéguen ! Mais elle est parfaitement fonctionnelle et offre l’avantage (ou l’inconvénient) de totalement séparer les bases de données de chacune de vos pages de blog. En réalité, vous aurez avec cette technique deux blogs distincts, donc deux interfaces d’administration (avantage ou inconvénient encore une fois, c’est selon les utilisations), mais d’un point de vue cosmétique, de design, vos visiteurs croiront que vous n’avez qu’un seul blog ! Cependant, si vous préférez n’avoir qu’une seule base et une seule interface d’administration, passez directement à la troisième approche. Bon, attaquons !

Configurons le blog

Admettons que vous ayez déjà un blog sous wordpress sur votre hébergement, à l’adresse www.mon-blog.fr. Vous voulez ajouter une page de blog « life », pour raconter votre vie (au secours !). Pour cela, ajoutez un répertoire au dossier contenant votre site wordpress (à côté de wp-admin, wp-content etc). Ensuite, copiez-y tous les fichiers et dossiers de votre wordpress déjà existant.

arborescence hebergement wordpress

Une fois la copie terminée, supprimez le fichier wp-config ( /!\ celui contenu dans life, pas celui de votre blog normal !!). Vous pouvez aussi supprimer les fichiers contenus dans /wp-content/uploads. Une fois ceci fait, accédez à ce nouveau blog (il est disponible à l’url www.mon-blog.fr/life). WordPress va vous demander de le configurer comme un nouveau blog (mais c’est un nouveau blog !). Fournissez lui donc toutes les infos qu’il demande au niveau de la base de données.

Adaptons le template

Une fois l’installation terminée, appliquez à ce nouveau blog le même thème que votre blog principal. Mis à part le contenu, les deux sont maintenant identiques. Il serait néanmoins quand même sympa d’avoir un onglet dans le menu de navigation pour pouvoir naviguer directement entre vos deux blogs, et donner l’illusion qu’il s’agit d’un seul et même blog. Il va pour cela falloir modifier un peu votre thème pour configurer le menu.

Avant de se plonger dans le code, si votre thème le supporte, vous pouvez faire cela directement depuis l’interface d’administration. Allez donc dans apparence > menus, puis cliquez sur l’onglet lien. Vous pouvez-ici ajouter un élément de menu pour le faire pointer vers le lien de votre choix (en l’occurrence l’adresse de votre second blog).

Si par malchance, votre thème ne supporte pas cette fonctionnalité, vous allez devoir remonter vos manches. Dans le cas où vous n’avez pas de menu, il suffira de l’écrire en dur dans le header de votre thème :

<ul>
<li><a href="http://www.mon-blog.fr">Blog</a></li>
<li><a href="/life">Life</a></li>
</ul>

« Blog » étant ici votre page de blog d’accueil et « life » amène à votre « second blog » maintenant intégré comme si les deux n’en faisaient plus qu’un seul. Cependant, il est peu probable que vous n’ayez pas de menu, puisque vous avez certainement dû créer au moins une page pour vous présenter et expliquer votre blog etc. Il va donc falloir ajouter cette nouvelle catégorie au menu dynamique de wordpress. L’adaptation dépendra ici du thème que vous avez sur votre blog. Je vais me baser sur twentyten mais cette manipulation vaut aussi pour twentyseven, et devrait convenir à la plupart des thèmes.

La fonction wordpress permettant de générer automatiquement le menu correspond à cette ligne dans le fichier header du thème twentyten :

<?php wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); ?>

Elle génère le code html suivant :

<div class="menu"><ul><li class="current_page_item"><a href="http://www.mon-blog.fr/" title="Accueil">Accueil</a></li><li class="page_item page-item-643"><a href="http://buzut.fr/live/">Live</a></li><li class="page_item page-item-23"><a href="http://buzut.fr/a-propos/">A propos</a></li><li class="page_item page-item-91"><a href="http://buzut.fr/contact/">Contact</a></li></ul></div>

On pourrait vouloir simplement ajouter un lien avant la fonction wp_nav_menu, cependant, elle génère elle-même une liste (ul), on obtiendrait soit un lien hors de la liste, soit deux listes l’une contre l’autre et ce ne serait donc pas une solution propre. On va donc avoir recours à la fonction wp_list_pages. Nous allons remplacer la ligne wp_nav_menu, par ceci :

<div class="menu">
  <ul>
    <li><a href="http://www.mon-blog.fr">Blog</a></li>
    <li><a href="http://www.mon-blog.fr/life">Life</a></li>
    <?php wp_list_pages('title_li=&depth=1&link_before=<span>&link_after=</span>'); ?>
   </ul>
</div>

Nous avons donc ajouté plusieurs choses :

  • Tout d’abord, une div avec la classe menu. En effet, la fonction wp_nav_menu génère ce code, comme nous l’avons vu plus haut, mais wp_list_pages ne le fait pas. Nous l’ajoutons donc pour que le style défini dans la CSS pour le menu s’applique correctement,
  • Ensuite nous avons ouvert une liste afin d’y placer tous nos éléments,
  • Les éléments de menu que nous voulons placer sont nos liens en dur, qui mènent pour l’un à la page d’accueil et l’autre à la page blog (qui est en fait un autre site, mais ça, personne ne peut le savoir maintenant !)
  • Enfin, nous avons placé la fonction wp_list_pages qui génèrera dynamiquement les liens pour les autres pages.

Note : vous trouverez toutes les informations concernant les fonctions wp_nav_menu et wp_list_pages dans le codex wordpress.

N’oubliez pas de mettre à jour le thème sur les « deux blogs » pour que le tout soit cohérent. Enfin, dernière petite adaptation, dans le thème de « life », modifiez le lien du logo pour qu’il pointe vers www.mon-blog.fr et non www.mon-blog.fr/live, sinon ça fait un peu bizarre !

Dernier point, comme les deux blogs ne partagent pas la même base de données, si dans votre sidebar vous avez des liens vers les catégories etc, ils seront différents sur chacune de vos pages de blog. Encore une fois, certains trouverons que c’est un avantage (contenu qui s’adapte en fonction de la page et du sujet), d’autres n’y trouveront pas leur compte…

Une seule base mais avec des tables différentes

Ça, ça va être très très rapide à expliquer. L’intérêt ici est que si vous n’avez pas d’autre base de données à votre disposition, vous pouvez tout à fait configurer plusieurs blogs avec une seule base de données. La technique est exactement la même que la précédente. Au moment de la configuration de wordpress, lorsque celui-ci vous demande le nom de votre BDD, le mot de passe etc, vous donnez les mêmes informations qu’avec votre blog déjà en fonctionnement (vous les retrouverez au besoin dans le fichier wp-admin), mais vous changez le préfixe des tables ! C’est aussi simple que cela. Roulez jeunesse !

Note : je vous conseille quand même de faire une sauvegarde de votre base de données avant d’y effectuer ce genre d’opérations, on n’est jamais trop prudent…

Voilà ! Nous avons fini de charcuter WordPress pour l’adapter à nos besoins. C’était cool n’est-ce pas ?! Laissez-moi savoir ce que vous pensez de ce petit tuto. Ou dites moi simplement merci, ce sera sympa, j’ai mis un moment à l’écrire -_-‘ !

Déjà 132 réponses, rejoignez la discussion !

  • SuperSerge

    dit :

    Bonjour,

    merci pour ces astuces qui m’ont l’air de très bien fonctionner.
    En fait je compte créer un site évolutif avec wordpress, dont le contenu change chaque année mais avec cependant la possibilité de consulter le contenu des années précédentes…
    C’est un site pour une exposition où chaque année le thème change, donc selon l’année à laquelle on consulte le site on arrive sur la page de ladite année. Je ne sais pas si je suis bien clair…

    Bref! Laquelle de vos solutions ci dessus me conseillerez-vous?

    merci d’avance.

    • Buzut

      dit :

      Bonsoir,

      je pense que la meilleur solution est la première. Vous aurez du coup un blog distinct par année, et vous avez la possibilité de lister les blogs des années précédentes dans le menu pour consultation.

      faites moi savoir si vous avez besoin de plus d’info !

  • SuperSerge

    dit :

    Salut Buzut,
    c’est que je pensais, merci pour ta réponse.
    Donc pour la construction des dossiers dans mon serveur ftp, j’aurais ma racine www/ (chez OVH) et à l’intérieur un dossier par année 2012/, 2013/, … chacun relié à sa base de donnée correspondante.
    La question que je me pose c’est comment définir dans quel dossier se trouve la page d’accueil? Vu qu’il s’agit de l’édition 2012 il faudra qu’il pointe vers le dossier 2012/ mais quand on sera en 2013 il faudra que la page d’accueil pointe vers l’index.php du dossier 2013.

    Est ce que tu aurait une idée de comment procéder?

    merci d’avance.

    • Buzut

      dit :

      Cest une très bonne question que tu posés la ! Il y a peut être une option (ou un hack) wordpress qui permet de choisir un dossier spécifique dans lequel on place la page d’accueil, sinon, le plus simple à mon avis est que tu places directement dans ton dossier racine /www un index.php avec une redirection php, et chaque année, tu n’auras donc plus qu’à modifier l’adresse de redirection !

    • Kayden

      dit :

      M PUES AMY ME PARESE QUE QUIEREN PERJUDICAR A ESE RESTARUANT X QUE YO LA HISTORYA YA LA AVIA ESCUCHADO Y YA ME LA AVIAN DICHO ADEMAS ES UN RESTARUAN QUE ES SUPER FAMOSO ES BN RECONOSIDO EN TODO EL MUNDO Y PUES TYENE MUY BN VENTAS EN DINERO Y AMS SY EL RETSTRUANAE SDE ESTAOD UNIDOS PERO LO DE EL PAYASO NO ME AL SABIA LA NETA Y PUES QUE LES QUEDA

  • Martine

    dit :

    Bonjour,

    Avec la première méthode, est-ce qu’on doit obligatoirement conserver le même thème pour chaque installation ou est-ce possible d’avoir un thème différent?

    Merci!

  • SuperSerge

    dit :

    Salut Buzut,
    mon projet avance bien, j’en suis encore à dompter le template que j’ai acheté mais ça va ;)
    En fait j’ai une question par rapport à la redirection, est ce que je devrait la faire un php avec header(), ou avec la balise meta refresh du html?
    Est ce que ça aurait une incidence sur référencement ou quoi que ce soit d’autre?

    Merci d’avance et bonne journée :)

    • Buzut

      dit :

      Content que ça progresse :D !

      le meta refresh redirige du côté client, c’est, je trouve, nettement moins propre qu’une redirection côté serveur en php. C’est plus user-friendly d’utiliser header(‘Location: http://www.example.com/‘);

      Ensuite, niveau référencement, pareil, le header sera mieux puisque tu peux préciser le type de redirection avec header().

      Par défaut, header(‘Location:…’) met une redirection 302, donc temporaire. Ainsi, les moteurs de recherche continueront à référencer ta page d’accueil (celle qui redirige), ce qui est dans ton cas le plus judicieux, puisque tu veux pouvoir rediriger sur une autre l’année d’après !

      • SuperSerge

        dit :

        ok, donc il faudra que j’optimise le référencement de la page qui redirige, je pensais juste mettre la balise header au départ, mais en fait il faut que je fasse une vrai page html avec meta description et tout, c’est bien ça?

  • déçevant

    dit :

    J’avais lu que WordPress était « simple ». Depuis hier je cherche comment utilisé plusieurs menus et je ne tombe que sur des articles comme le tien (ce n’est pas une critique). Je n’y comprend rien mais rien…vu que je n’y connait rien en php. Et ce ne sont que des menus, qu’est ce que ça va être quand ça sera des choses plus complexes ?!

    Je n’ose imaginé ce que ça doit donné avec les autres CMS vu que WordPress est « simple ». C’est décourageant et à vous dégouté d’essayer de créer un blog from scratch. Je vais finir par lâcher prise et me contenter des médiocres plates forme clé en main style over-blog.

    Merci quand même pour ton article.

    • Buzut

      dit :

      Salut ! WordPress est relativement simple à utiliser, mais dès que tu veux aller au-delà des fonctionnalités qui sont offertes de base, il faudra souvent mettre les mains dans le cambouis.

      A l’inverse, tu trouveras des CMS qui offrent plus d’options de base, mais qui seront beaucoup plus complexes à prendre en main (je pense notamment à Joomla).

      La limite de mon raisonnement réside néenmoins dans le fait que tu trouveras aisément de nombreux plugin pour WP qui te permettront de faire à peu près tout et n’importe quoi sans avoir à comprendre comment ça fonctionne et sans avoir aucune notion de programmation. C’est de ce côté la que tu devrais chercher. Fais un tour sur les forums de Wodpress francophone, ils devraient pouvoir te renseigner concernant les bons plugins ;)

  • Jean

    dit :

    Bonjour,
    merci pour les explications détaillées.
    C’est ce que je cherchais pour un nouveau site que je suis en train de créer.
    Malheureusement, j’ai suivi toutes les étapes scrupuleusement, j’ai vérifié et re-vérifié mais ça ne fonctionne pas du tout.
    Je vais abandonner et essayer d’aller glaner d’autres solutions ailleurs.

  • Jean

    dit :

    Super !!!
    Ca fonctionne à présent.
    Il y avait une petite erreur de syntaxe que j’avais commise et reproduite pour tous les autres fichiers .php de chaque catégorie (problème du copier-coller).
    Donc, c’est de ma faute si ça ne fonctionnait pas, évidemment.
    Merci encore pour ces solutions et surtout, ce qui est très rare pour les personnes en ce domaine, de faire preuve de pédagogie et de très bien détailler pas-à-pas les solutions.

    • Buzut

      dit :

      Salut Jean,

      Je suis content que tu ais pu résoudre ton problème et que tu sois arrivé a faire ce que tu voulais. Merci pour le compliment sur ma pédagogie. Je peste moi meme contre certains tutos qui considèrent de nombreux points comme evidents et qui, de ce fait, les passent sous silence. J’essaye donc de ne pas reproduire ça ici ;)

  • louise

    dit :

    Bonjour,
    j’aimerais savoir si on arrive à distinguer les catégories si on utilise la meme base de données.
    En particulier, le blog a deux sortes d’articles qui sont catalogués différents,actuellement, on arrive à faire voir les articles sur deux pages différentes, mais les tags et les catégories sont mélangées.
    merci

    • Buzut

      dit :

      En ce qui concerne les catégories différenciées selon la page avec la même table de base de données, ce n’est pas possible à ma connaissance. Pour obtenir ce résultat, le plus simple est d’avoir recours à deux tables différentes.

      Sinon, il faut jeter on œil aux fonctions internes de wordpress en se référent au codex. Mais ça risque de prendre du temps…

  • Onglette

    dit :

    Bonjour,
    Je suis sur la méthode 3, j’ai bien récupéré mon ID de la catégorie créée, j’ai mis la petite ligne dans mon code de page index (copié/collé avec mon id donc pas de soucis de syntaxe normalement…) et là ben ça veut pas :

    « Dans l’état actuel des choses, votre page de blog « index » n’affiche déjà plus les articles dont vous avez sélectionné les ID »

    Thème twenty eleven. Ma page d’accueil est une page statique avec une colonne latérale, est-ce que ca viendrait du fait qu’il faille en faire une page d’articles ? (ho my god ! faite que cette question ne soit pas stupide hihihi sinon tant pis)

    Merci.

    • buzut

      dit :

      Bonjour;

      si votre page d’accueil est une page statique, elle n’est donc pas la page de blog non ? Elle n’affiche dans tous les cas aucun article. Je me trompe ?
      Auquel cas il n’y aurait directement qu’a passer à l’étape concernant le template de page.

  • Marc

    dit :

    Bonjour,
    merci beaucoup pour ces solutions.
    J’ai mis en place la 3° méthode et tout s’est bien déroulé.
    Il y a seulement un hic un peu gênant sur mon site.
    Sur les nouvelles pages, il apparaît que les articles et le footer ainsi que les widgets sont totalement absents de celles-ci.
    Est-ce qu’il y a quelque chose à faire ?
    Merci déjà pour ces tutoriels très bien expliqués et efficaces.
    Marc.

    • buzut

      dit :

      C’est bizarre en effet. as-tu bien fait un copier-coller de tout l’index.php dans les nouveaux fichiers de template ?

      Quel est le thème employé ? C’est un thème perso ou un thème connu ? Il faudrait je pense regarder du côté des inclues qui servent à insérer le footer et la sidebar sur les pages, le problème peut venir de là…

  • Marc

    dit :

    Bonjour Buzut,
    J’utilise Filezilla.
    Je télécharge le fichier index.php et insère uniquement les lignes indiquées à la fois pour le index.php du site et aussi pour les pages correspondant aux catégories.
    J’ai essayé sur un autre site.
    Il y a bien création des nouvelles pages, apparition des articles par page-catégorie et qui n’apparaissent en home page (exactement le résultat recherché donc avec ce système).
    Mais cette fois-ci, c’est la mise en page du site qui est complétement faussée, le footer apparaissant ramassé en haut à droite et les widgets apparaissant toujours du côté spécifié mais en-dessous des articles de la page-catégorie.
    Finalement, ce problème assez rédhibitoire pour un visiteur humain fait que je vais certainement revenir à la présentation wordpress par défaut. C’est vraiment dommage !!!

    • Nettie

      dit :

      aneH,nonestly, you guys, after you’ve just spent 45 minutes discussing how God has helped you find sobriety and how much your life is screwed up, you’re going to focus on a woman’s hand while you’re saying The Lord’s Prayer?Yes. Are you kidding?

  • Marc

    dit :

    Bonjour, c’est encore moi.
    Etrangement mais avec joie :), le 2° site s’est de lui-même remis en place quelques minutes après la modification.
    Tout va bien pour celui-ci.
    Quant au premier site, j’ai vérifié sur d’autres pages « normales » et j’ai constaté que les widgets n’apparaissait pas naturellement sur les autres pages. J’en déduis que le thème est construit ainsi.
    La seule différence est que dans le 1° site, le footer apparaît dans les autres pages (« normales ») que la home page alors qu’il n’apparaît pas dans les pages-catégories.
    C’est la seule différence et je vais creuser un peu encore.
    A plus et merci encore, Buzut !

  • Marc

    dit :

    Finalement, non, les pages-catégories du 2° site ont le footer et les widgets sens dessus-dessous comme décrit précédemment.
    Je ne comprends rien et je vais revenir à la structure originale de WordPress. C’est trop de soucis et de perte de temps !

  • Marc

    dit :

    Après, j’arrête, c’est promis… ;)

    J’ai fini par trouver la solution.
    En bidouillant en fin de script, là où apparaissent et , j’ai créé des divisions et le footer et les widgets ont retrouvé leurs emplacements originels et adéquats.
    Maintenant, je ne suis qu’un amateur autodictate (un peit bidouilleur de HTML, rien de plus) et je n’arrive pas à comprendre pourquoi il faut modifier le code du thème concernant le footer et les widgets pour les pages-catégories créées ?
    le code original du thème fonctionne pour la home page et les autres pages mais doit être quelque peu modifié pour les pages-catégories.
    Mais l’essentiel est que tout soit à la même et bonne place. ;)

    • Buzut

      dit :

      C’est bien tu me travailles mon référencement Marc, merci ;)

      WordPress n’affiche pas tes balises car c’est du code, peux-tu juste donner leur nom sans les < et > si ce sont des balises html, pareil vire la syntaxe si c’est du php (ou alors tape les en entités html) http://htmlentities.net/

      Normalement il n’y a rien de plus à modifier. Mais comme chaque thème est différent, tout dépend de comment il a été conçu, et ça, sans avoir le code du thème sous les yeux, c’est difficile à dire…

      Quoi qu’il en soit. Je suis content que ta persévérance ait payé et que tu sois arrivé à tout mettre en place !

  • Elodie

    dit :

    Bonjour,
    J’ai testé la 3eme solution sans succès, pourtant j’ai tout suivi à la lettre. A moins que je n’ai pas tout compris et que ca ne correspond pas à mes attentes !! :'(
    Mon thème est mystique.
    1ère phase : . Ca fonctionne !! Les articles correspondant à la catégorie ont disparu !!!
    2eme phase : J’ai créé ma page, j’y ai associé le template, ma page apparait dans mon blog sauf qu’elle est vide ! Les articles correspondant à la catégorie, n’apparaissent pas. Si je rempli ma page dans le BO ca fontionne mais ca n’est pas le but…. car moi ce que je veux c’est faire apparaitre les articles de la catégorie !! C’est bien le but de votre article, non ??
    Help !!!

    • Elodie

      dit :

      Oufff !!!! J’ai réussi !!!
      J’ai enlever le code else et mis un code dont vous ne parlez pas …
      Bref !!! en résumé il faut être chirurgien !!! Mdr !!
      Merci encore pour cet article car peut de personnes en parle !!

      • Emmy

        dit :

        Tais disse:Sangue azul…..Estão em greve no momento!! Preciso do meu certificado de vigilante para poder ir atrás de emprego e GANHAR R$ 980,00Vergonha para fazer greve e exigir 30% de aumento, esse pessoal não têm, mas para informar o seu salário de R$ 7.000 esses “sangues azuis” têm vergonha de discutir sobre o assunto!!!… A velha e gigantesca diferença social br3rEleisa&#82a0;istá no sangue do brasileiro!!

  • Hichem

    dit :

    Salut Buzut,
    Merci pour ton article très astucieux. Je vais me lancer aujourd’hui dans la 3ème méthode qui a l’air de correspondre au mieux à mon besoin. Je rajoute ton adresse dans mes favoris, car je pense y trouver quelques autres perles.
    Une question sans rapport avec cet article : comment as-tu fait pour que ton bandeau de site, et menu prennent toute la largeur de page ? C’est un thème spécifique ?
    Je reviendrai t’informer de mon essai de plusieurs pages de blog.

      • Hichem

        dit :

        Merci pour ta rapide réponse (un dimanche en plus !)
        Les CSS, c’est pour la prochaine fois :-), avec surtout la création de mon propre thème. Je vais rester sur le sujet principal de ton article pour aujourd’hui, car le besoin est certes plus important.

      • Hichem

        dit :

        Je viens de mettre en place la 3ème méthode, qui me paraissait la plus rapide.
        Tout est ok concernant l’apparition des articles sur 2 pages différentes (j’utilise le thème de WordPress Twenty Eleven), par contre comme le disait Marc un peu plus haut, c’est un peu l’anarchie dans l’apparition des widgets (après les articles), mais aussi au niveau des titres, de la bulle « commentaires » et du bouton « modifier ». Plus aucun rapport avec les articles de base.
        Et je n’ai pas trop bien compris la réponse où tu parles de virer les balises ou autres ;-(
        Un p’tit coup de main, Buzut ?
        Merci

  • Buzut

    dit :

    Ma réponse à Marc concernait son commentaire « là où apparaissent et  » on ne peut pas voir les balises dont il parle car WP échappe le code dans les commentaires pour ne pas qu’il s’exécute, donc rien à virer dans le template hein ! :D

    Au niveau des widgets qui ne s’affiche pas bien, je n’ai pas le souvenir de problème avec twenty eleven, peut être le nouveau a-t-il changé… J’essayerai de jeter un coup d’œil demain

    • Millie

      dit :

      bacom tb mata, faz parte ahahah acho um absurdo proibirem as pessoas de fumares até em locais isolados, onde elas so prejudicam a si mesmo. eu nao fumo, mas traialharba par a souza cruz, na boa ahhaha

  • axel

    dit :

    Bonjour

    J’ai bien lu l’article très intéressant par contre impossible d’y arriver. Est je sais vraiment pas ou ça bloque mais je ne vois pas les articles.
    Peux tu m’aider à résoudre le problème.
    Bien à toi

  • Océane

    dit :

    Franchement je cherchais cette astuce-là depuis des semaines, merci! Je vais utiliser la 3e méthode, car ce dernier semble être plus facile pour une fille, non gekette S.v.p. :o)

  • Jeremy D

    dit :

    Hello,

    je commence a trvaailler sur WP en local, et j’ai voulu suivre ton tuto. Ca n’a pas fonctionné, et je ne peux plus accéder à mes pages (« error »…) autres que la page d’accueil. J’ai voulu effacer la ligne mise dans index.php, mais ça ne fonctionne toujours pas… aie aie aie… J’ai voulu ajouter de nouvelles pages pour voir si cela avait affecté uniquement les anciennes pages, et elles ne s’affichent pas non plus…
    Help !!!
    merci

    • Jeremy D

      dit :

      Bon, j’essaie de m’en sortir avec l’extension Associated Posts, qui me permet de créer plusieurs pages avec des articles, mais ne me permet pas encore d’enlever certains articles de la page principale…

    • Lele

      dit :

      Musssesessssjssrssss que no les de verguenza!!!!!!! agarren un control, toquenlo, sóbenlo, aprienten botones hasta que se cansen, diganle al: novio, amigo con derecho, amante, agarre, pasatiempo, hermano, primo, papá, tio, abuelo, vecino, a mi, o hasta al perro de la casa; que les enseñen a jugar. No se van arrepentir; solo cojeran par de piques pero todos hemos pasado por ahí.

  • duude

    dit :

    Hey,

    Merci Buzut, je m’y suis mis et en 2 – 2 c’était fait (3ème solution).
    Juste un prob au milieu de la procédure à cause du thème qui affiche par défaut un article mais c’est corrigé. C’est vraiment la meilleure solution pour avoir plusieurs pages de blogs, gg!

    Question bonus : sur la nouvelle page créée, tu sais où aller pour insérer un texte fixe en haut de page? Comme t’a fait pour Wazup en fait : )

  • Bonjour, je souhaites faire la même chose mais je n’arrive pas à appliquer les méthodes j’ai télécharger divers logiciels pour installer WordPress sur mon ordi mais je n’obtiens pas les mêmes fichiers en clair je n’arrive à rien faire comment puis-je faire svp je cherche la méthode simplifiée et plus détaillée car je ne comprend pas grand choses merci.

  • Semahan

    dit :

    Cool, merci pour ces techniques !
    Je trouve les 2 premières trop lourdes, même si c’est bien d’avoir pensé à ceux qui ont un hébergement avec une seule BDD, mais la 3e déboite. Je la teste demain ! Merci d’avoir pris le temps de l’écrire et de partager !

  • Greg

    dit :

    Salut! super sympa la 3ème technique! Depuis le temps que je cherchais comment faire! Par contre, comment faire pour enlever toute la colonne de widget sur le côté droit de mon site ou bien l’aligner comme il le faut comme sur la page d’accueil (pages des articles du blog).
    Merci :)

    • Buzut

      dit :

      Hello !

      Alors, pour ce que tu demandes, cela dépend vraiment du thème et je ne pourrai donc pas trop t’aider là dessus…
      Normalement, la sidebar doit s’afficher comme sur les autres pages.

      Tout ce que je peux te conseiller c’est de jeter un œil à l’HTML de ta page pour voir si ça ne peut pas te donner un indice, sinon, sur ta page de template, tu enlèves la ligne qui inclut la sidebar, tout bonnement.

      Bon courage ;)

  • Cizio

    dit :

    Bonjour, merci pour ton tuto tout d’abord =).

    Deja tout marche ou enfin presque , sur mon accueil les articles s’affichent avec son images malheureusement je ne sais pas pourquoi, sur ma nouvelle page  » partenaires  » les articles de cette catégories s’affichent bien mais sans les photos, alors que le code est le même que sur l’accueil excepter ce que l’on ajouter en suivant ce tuto;

    Est ce que vous serez d’ou viens le problème , ou si le code ajouter enlève les photos ?

    • Buzut

      dit :

      Bonjour,

      Cela dépend du thème, de la configuration etc… Comme chaque cas est différent, il n’y a jamais de meilleure solution qu’un coup d’œil au code. Si en revanche tes articles sont affichés en entiers sur tes pages, et que toutes les photos sautent, là, c’est très bizarre…

  • Tiri

    dit :

    Bonjour,

    Archi débutant en toute cette cuisine, je suis chaud pour tenter la 3ème méthode. Le but est d’avoir une catégorie d’article en intranet, et une autre en public.
    Mais où trouver la table wp_terms ? Accessible depuis filezilla ?
    Thème twenty eleven

    Merci de votre aide !

  • Eno

    dit :

    Bonjour,

    Concernant l’approche n°3, dans l’index.php de mon thème, la loop est appelée avec get_template_part(‘loop’); et n’est pas écrite directement dans le fichier. Donc forcément je ne peux pas modifier la condition if différemment suivant mon template puisqu’il s’agit du même fichier unique loop.php ? Comment faire dans ce cas ?

    Merci pour toute aide…

      • Kaycee

        dit :

        met,mlm pertayaanku idem dgn pertayaan teman2 diatas,tp listriknya cukup besar ya,……dan nnti apakah pemula akan dibantu dlm menjalankan operasional mesinnya,trs kl ada kerusakan mesin gmn ya…. thx128212;———&#8#&2;-Agrowindo : Listrik digunakan untuk proses pemvakuman. Karena itu besarnya daya harus menyesuaikan dengan kecukupan vakumnya. Kami dengan senang hati akan membantu Anda. Training gratis

  • candice

    dit :

    Bonjour, merci pour ce tuto tout d’abord !

    J’ai semble-t-il tout fait de la 3ème méthode comme décrite, simplement, mon flux d’articles de blog remonte via le template-blog et non pas l’index.php chez moi.

    J’ai donc créé donc le nouveau template Live à partir de mon template blog (et non pas l’index, sinon ça ne marchait pas), et la 2ème page de blog fonctionne à merveille, en ne gardant que la bonne catégorie sélectionnée etc.

    Le hic c’est que dans le template-blog initial, je ne sais pas où placer la ligne de code , j’ai essayé un peu tous les endroits mais peut-être que mon thème met d’office d’autres conditions qui parasitent le machin.

    Pourriez-vous m’indiquer comment/où faire ?
    Voici le code du template-blog (je répète, la 2ème page de blog fonctionne très bien et ne fait remonter que les bons articles)

    get_option( ‘posts_per_page’ ), ‘paged’ => max( 1, get_query_var( ‘paged’ ) ) ); ?>

    have_posts() ) : ?>

    have_posts() ) : $wp_query->the_post(); ?>

    Merci beaucoup !!!
    Candice

  • candice

    dit :

    oups, mon commentaire a été mangé par la machine, le code a été coupé. Le revoici :

    get_option( ‘posts_per_page’ ), ‘paged’ => max( 1, get_query_var( ‘paged’ ) ) ); ?>

    have_posts() ) : ?>

    have_posts() ) : $wp_query->the_post(); ?>

    • Gertie

      dit :

      "There is no tea party, just more li;.s&quoteI would suggest you do some research or better yet, just open your eyes.Then you might not look as ignorant when you make these type of statements.

  • thierry

    dit :

    j’ai suivit la méthode 3 pour enlever des catégorie de ma page principale d’articles tout en oubliant pas la pagination bien sur

    ET la j’ai un gros soucis : mes post maintenant s’affichent du plus ancien au plus récent ??

    voici le script et la query mise avant la boucle :
    get_header(); ?>

    <?php

    $paged = (get_query_var('paged')) ?

    get_query_var('paged') : 1;
    query_posts( '&cat=-10,11,12,-13'.'&paged='.$paged);

    etc…

    j’ai tout essayé dans la query comme ajouter:
    &order=DESC
    ou
    &orderby=date&order=DESC

    mais rien ne fonctionne je pige plus rien et je suis pas le seul après avoir fouillé le codex et le web !! je sèche

    comment as tu eu le même soucis?? sinon comment a tu fait

    tout ça
    SUR THEME TWENTYELEVEN
    VERSION WP 3.5.1
    OU VERSION 3.7.1

  • thierry

    dit :

    Bonjour buzut et merci pour ta réponse rapide,

    mais non juste 3 plugin
    contact form7, TinyMCE Advanced, et seo url pages, et je pense pas que ce soit de leurs faute, ni un problème de timezone elle est toujours la même…

    à l’inverse quand je passe cette query:
    query_posts( ‘&cat=7,8,9,10′.’&paged=’.$paged );
    l’ordre des post est bon

    le problème c’est bien à l’exclusion des cat, exemple j’ajoute juste une exclusion à cette query:
    query_posts( ‘&cat=7,8,9,10,-12′.’&paged=’.$paged );

    et ça recommence l’ordre des posts est inversé ???
    et ajouter &orderby=date&order=DESC Ni change rien non plus

    UN TRUC DE FOU !!!

  • Thierry

    dit :

    problème de post inversė du nouveau mais ça reste inexpliquable :

    je étais en mod développement en local sous Wamp

    j’ai eu l’idée d’essayer la même query en mode de production sur le serveur
    et là Surprise ça marche les post sont dans le bon ordre ???

    reste à comprendre pourquoi en local ça fonctionne pas ???
    c’est pas cool de developer en production à cause de ça

    si quelqu.un à une idée je suis preneur !!

  • mezcalito

    dit :

    Bonjour, je tente de mettre en place votre astuce n°3 mais dès le debut je me heurte à une dificulté :
    à la racine de mon site je tyrouve un fichier index.php mais celui ci ne contient pas les lignes if(have_post())…..de la loop !
    voilà ce que j’y trouve :

    <?php
    /**
    * Front to the WordPress application. This file doesn't do anything, but loads
    * wp-blog-header.php which does and tells WordPress to load the theme.
    *
    * @package WordPress
    */

    /**
    * Tells WordPress to load the WordPress theme and output it.
    *
    * @var bool
    */
    define('WP_USE_THEMES', true);

    /** Loads the WordPress Environment and Template */
    require( dirname( __FILE__ ) . '/wp-blog-header.php' );

    du coup suis je bien dans le bon index.php ? et si oui où dois je mettre ma "commande query_post pour filtrer les catégories ?
    sinon quel bon fichier index.php dois je manipuler ?
    cordialement.

  • mezcalito

    dit :

    je pense avoir trouvé « le coupable » ! c’est le fichier index.php dans le dossier du theme utilisé effectivement !?
    ce fichier est bien plus fournis que le premier proposé par mes soins ici lol

    en voici son contenu :

    <div id= »post-« >

    <a href=" »>

    <!–
    <?php the_tags('Tags: ', ', ', '’); ?>
    Posted in |

    –>

    Not Found

    je suppose donc que l’insertion doit se faire au tout debut ( dois je sauter une ligne ?

    Cordialement.

    • Dash

      dit :

      before, the attacking player I’d really want us to have is Kaka, though I realise he’d be hard to get from AC. That Tevez kid looks like something, but I’m not nelssearicy angling for us to buy him. If we do, Oke dokee though.

  • mezcalito

    dit :

    Bon j’ai enfin réussi à trouver le index.php a trifouiller !
    mais mes manip ne donnent rien !
    j’ai tenter de filtrer les id d’articles que je ne voulais plus voir grâce à l’utilisation des catégories et tous les articles s’affichent qd mm !
    plusieurs questions :

    1) cette commande se place où exactement ds le fichier ? (sans les guillemets bien entendu)
    «  »

    2)j’ai placer le tag en tte première ligne du fichier live.php c’est correcte ?

    3)le fichier live.php est dans le même répertoire que index.php, est ce correcte ? ( l’ensemble dans le dossier du theme utilisé par le site)

    4)j’ai bien créer une nouvelle page avec comme template : live.php

    5) je rajoute du coup la commande pour afficher les articles à filtrer dans live.php : «  » et le slug qui convient j’obtiens mon filtrage comme il faut!

    Mais en page principale ( le index.php j’ai toujours tous les articles qui s’affichent sans filtrage !
    où est l’erreur stp ?

    • Idalia

      dit :

      There is a big event on the 8th the monk who inivetd Bhante Yuttadhammo inivetd me as well to join the ceremony. For this and for the reason that thae gallena arany is a good place to be at, the flight was changed. I leave Sri Lanka on the 11. of January and will certainly be present at Ajahn Sua#7n&h821p;s birthday. how long I will stay in Thailand depends on several factors and how long I will be staying here after coming back here will depend on the visa.It is important to me to talk to Ajahn Suphan before making Sri Lanka the new base for living.May 29, 2012

  • Chris

    dit :

    Bonjour, j’ai créé un site pour une communauté religieuse, ma question :

    dans la partie « Mouvements » de mon site (doyennedeleuze.be) j’aimerais que chaque responsable de centre ai un code d’accès wp pour remplir eux même la page et n’ont pas accès au reste des pages mais seulement leur page en question. Que me conseillez vous?

  • Pascal

    dit :

    Salut,
    J’ai essaye la solution numero 3. Cela fonctionne bien pour enlever les category que je ne veux pas mais je n’arrive pas a creer ma deuxieme page. Pourtant je vois bien mon template dans les attributs. J’ai beau faire tout ce que tu dis, j’obtiens toujours une page blanche. Est-ce que c’est a cause que j’utilise une front page static? Je ne m’y connais pas du tout en php. J’utilise WP 3.8.1 avec le theme twenty fourteen.

  • Julien

    dit :

    Bonjour,

    Quand tu dis « Si vous y accédez par PhpMyAdmin… », ça veut dire qu’il existe une solution alternative pour ta troisième proposition?
    Je suis novice et sur mac (mavericks), ce qui n’arrange rien à ma compréhension de phpmyadmin. Avec Filezilla, ca serait possible de faire le même travail pour bidouiller la BDD?
    Sinon, tu as un tuto simple et facile de phomyadmin pour mac quelque part (pas faute d’avoir chercher pourtant, mais ca reste hyper technique avec des configurations locales et tout…) :-(
    Désolé pour la question de débutant !
    Et merci pour les tuyaux !

    • Buzut

      dit :

      Il n’existe pas une, mais des solutions alternatives. PHPMYADMIN est une interface web, il y en a d’autres que tu peux installer.

      Pour ma part, le plus direct, sécurisé et puissant, c’est l’interface en ligne de commande. Là tu discutes directement avec MySQL sur son interface par défaut. J’ai écrit un article à ce sujet : http://buzut.fr/2012/06/23/maitrisez-mysql-en-cli/

      N’hésite pas si tu as d’autres questions ;)

    • Shanna

      dit :

      « migration project where no help existed before » I was referring specifically to Forms migration, not the facilities that SQLDeveloper and the Migration Workbench provide (I already had someone email me about thJh!e).oosn.

  • hatfab

    dit :

    Bonsoir,
    Merci pour ce tuto qui va finir par m’aider, si j’arrive à m’en sortir, ce qui n’est pas le cas pour le moment. J’utilise un thème du commerce et non pas les thèmes par défaut de WP. Il y a une page « index.php » bien sûr, mais il y a aussi une page « page-blog.php » est-ce que ça n’est plutôt celle-là que je dois dupliquer et modifier ? Et puis du coup que doit-on choisir dans Réglage > Option de lecture > page des articles ? Rien ?
    Merci

  • Diego

    dit :

    Bonjour Buzut,

    je ne parviens pas à faire fonctionner les morceaux de codes comme escompté.
    Je travaille dans un theme maison dérivés probablement des 20/30 et 20/40, sur la version wp antérieure à la 4.0.

    Je souhaite:
    1. Créer une page (nos campagnes) qui regroupe tous les posts des différentes campagnes.
    2. Créer un blog par campagne (environs 30).

    1. Le blog “mère”, ca, c’était pas trop compliqué:
    A. j’ai demandé une “static front page” dans le menu “apparence/customize”. Et puis “our campaigns” dans le menu déroulant “post page”. Et puis j’ai modifié l’html de la page home.php qui génère la page “nos campagnes”.
    B. J’ai créé des catégories et des posts que j’ai catégorisés.
    C. Tous les posts s’affichents.
    Mais
    > Quand on enlève le “while”, il affiche un media formaté comme un post (type texte d’un carrousel et pas un post).
    > Avec le “while”, il affiche en plus des posts que je n’ai pas créé: “auto draft” sans catégorie.
    > Et j’ai voulu tester le code , sans succès: tout s’affiche. Les ID de catégories viennent du onmousover sur la catégorie dans la rubrique du même nom.

    2. Ensuite, pour les blogs “filles”.
    A. J’ai créé une catégorie “dévolution-de-la-case-de-tete”. Puis les pages “Liste de campagne.html”, “Dévolution de la case de tête.HTML” via le menu “pages/new” et “Dévolution de la case de tête.PHP” via “apparence/theme editor”.
    C. J’ai repris un des posts auquel j’ai attribué en plus la catégorie “dévolution-de-la-case-de-tete”.
    B. J’ai copié le code “while” dans ma page “Dévolution de la case de tête.php”. Et j’ai viré les “If” et “Else”.
    Mais:
    > Sans le code “paged”, il y affiche la catégorie “dévolution de la case de tête” formatée comme un post, mais sans “content”, ni “catégorie”, vu qu’il n’y en pas pas.
    > Avec le code “paged”, il n’affiche rien, ni post, ni catégorie.

    Une idée?

  • Buzut

    dit :

    En effet ça peut d’une certaine manière fonctionner. Cependant, deux inconvénients majeurs a cette technique selon moi :
    – Tu ne peux afficher sur ta « deuxième page de blog » que les articles d’une seule et même catégorie,
    – mais surtout les articles affiches sur ta seconde page de blog s’affichent toujours sur la page de blog principale !

  • gwen

    dit :

    Bonjour,
    Merci pour le tuto il est trés clair et trés utile!
    J’ai utilisée la 3eme méthode et j’ai un soucis lorsque je clique sur « lire plus » à la fin du résumé de mon article rien ne se passe je n’aie plus accès a mon article complet.
    N’étant pas douée en PHP j’ai besoin d’un petit coup de main!!
    Avez vous une idée d’où peut venir le problème ?

    voici mon code :

    <a href=" » class= »breadcrumb__link »>

    //la ligne suivante, vous l’avez déjà, ne la mettez donc pas deux fois,
    //il s’agit juste de placer le morceau ci-dessus avant la ligne qui suit

    ‘505px’,’height’=>’318px’));
    } else {
    if(get_the_post_thumbnail($post->ID,’post-list-thumba’)){echo get_the_post_thumbnail($post->ID,’post-list-thumba’);}else{echo  »;}
    } ?>

    <a href=" »>

    ID, ‘category’,  », ‘ , ‘,  »); ?>

    <a href=" » class= »second-btn »> ›

    <a href=" » class= »btn-more »>+

    <a href=" » class= »blog-post__thumb »>
    ID,’post-latest-thumba’)){echo get_the_post_thumbnail($post->ID,’post-latest-thumba’);}else{echo  »;} ?>

    <a href=" »>

    ID, ‘category’,  », ‘ , ‘,  »); ?>

    <a href=" » class= »second-btn »> ›

    <a href=" »>

    ID, ‘event-category’ );
    if($cur_terms !=  ») { ?>

    name.’ ‘;
    }
    ?>


    <a href=" » class= »btn-more »>+

    Merci d’avance

    • gwen

      dit :

      ah petit bug lors de la copie du code…

      <a href=" » class= »breadcrumb__link »>

      //la ligne suivante, vous l’avez déjà, ne la mettez donc pas deux fois,
      //il s’agit juste de placer le morceau ci-dessus avant la ligne qui suit

      ‘505px’,’height’=>’318px’));
      } else {
      if(get_the_post_thumbnail($post->ID,’post-list-thumba’)){echo get_the_post_thumbnail($post->ID,’post-list-thumba’);}else{echo  »;}
      } ?>

      <a href=" »>

      ID, ‘category’,  », ‘ , ‘,  »); ?>

      <a href=" » class= »second-btn »> ›

      <a href=" » class= »btn-more »>+

      <a href=" » class= »blog-post__thumb »>
      ID,’post-latest-thumba’)){echo get_the_post_thumbnail($post->ID,’post-latest-thumba’);}else{echo  »;} ?>

      <a href=" »>

      ID, ‘category’,  », ‘ , ‘,  »); ?>

      <a href=" » class= »second-btn »> ›

      <a href=" »>

      ID, ‘event-category’ );
      if($cur_terms !=  ») { ?>

      name.’ ‘;
      }
      ?>


      <a href=" » class= »btn-more »>+

  • Laurent

    dit :

    Bonjour et merci pour ces explications !

    J’ai utilisé la première solution, cela fonctionne bien.

    Cependant, dans la page live.php j’ai ajouté

    … la boucle While…

    mais la navigation vers les articles précédents ne fonctionne pas

    De plus, sur ma page principale de mes actualités (index.php)… je ne peux pas aller vers mes articles précédents

    Si vous avoulez une solution à mes 2 problèmes… je suis preneur ;-)
    Merci
    Laurent

    • Buzut

      dit :

      Bonjour Laurent,

      C’est difficile de diagnostiquer votre problème comme ça. Ces fonctions sont étroitement liées au thème utilisé. Pour la pagination, je vous conseille de jeter un œil à « Ajouter une pagination en bas des pages » de mon article sur le functions.php de WordPress

  • carole

    dit :

    bonjour !
    je viens de tester la 1ere méthode (car le code c’est malheureusement pas du tout mon truc !!!), et c’est très bien !
    Par contre, j’ai l’impression dans les blogs « secondaires » c’est à dire les pages dans lesquelles les articles sont aussi écrits, ils n’apparaissent pas du plus récent au plus ancien mais que le plus ancien reste le 1er…..est-ce normal ? Y-a-t-il encore une ruse que j’aurai raté ;-))) ???
    Merci !!

    • Buzut

      dit :

      Bonjour Carole,

      Normalement, vous n’avez rien à faire pour cela. Tentez tout de même de trouver un plugin permettant de modifier l’ordre d’affichage des articles.

  • Simon

    dit :

    Bonjour, je rencontre un problème avec la 3 ème méthode,

    Sur la homepage ça fonctionne bien la catégorie est bien exclue mais sur la page qui doit afficher cette même catégorie, rien ne s’affiche du moins aucun, article car le nom de la page est bien présent

    voici le code

    publish;
    $total_pages = ceil( $published_post_count / $posts_per_page );

    if ( « 1 »

    max_num_pages ); ?>

    <div id="post- » >

    max_num_pages > 1 ) : ?>

    <?php echo get_next_posts_link( __('« Older posts’, ‘hemingway’)); ?>

    <?php echo get_previous_posts_link( __('Newer posts »’, ‘hemingway’)); ?>

    • Simon

      dit :

      J’ai foiré mon copier coller précédent :p

      publish;
      $total_pages = ceil( $published_post_count / $posts_per_page );

      if ( « 1 »

      max_num_pages ); ?>

      <div id="post- » >

      max_num_pages > 1 ) : ?>

      <?php echo get_next_posts_link( __('« Older posts’, ‘hemingway’)); ?>

      <?php echo get_previous_posts_link( __('Newer posts »’, ‘hemingway’)); ?>

  • Cassandra

    dit :

    Coucou, j’ai un petit soucis je voulais essayer la méthode n°2 vu que tu dis que c’est la meilleure mais le soucis c’est que moi dans mon index.php j’ai que ça en code :

    A aucun moment je vois ecris if(have_posts()) :

    Peux tu m’expliquer pk ?
    Merci de ton aide

  • Vincent

    dit :

    Bonjour,

    Je suis désolé, mais je bloque vraiment à l’etapge 1, au niveau de : « Vous n’avez plus qu’à cocher les catégories correspondantes dans vos articles pour qu’ils se « rangent » automatiquement sur la bonne page ! »
    Serait il possible de me le détailler ? Merci beaucoup pour votre aide !..

    Antonin

  • GillesD

    dit :

    Bonjour,
    Pouvez-vous m’aider ?
    Par la force des choses, je suis confronté à ce problème et tombe par chance sur votre blog. WP ayant évolué depuis, je n’arrive pourtant pas à faire fonctionner la solution : « La technique royale : deux pages de blogs sur-mesure ». J’ai pourtant tout suivi step by step. J’ai une page blanche

    Le seul point que je puisse trouver est que j’ai un thème enfant avec le plugin « Divi Children » de divi4u.com
    Aucun d’autres fichiers PHP copiés dans le dossier du thème enfant
    Je suis en local :
    WampServer 3.0
    Apache 2.4.17
    PHP 5.6.16
    MySQL 5.7.9
    Une page d’accueil statique et une page Blog

    J’ai dû passer par le plugin « Redirection » , mais comme vous le signaliez, les articles ne sont pas exclus de la page blog par défaut

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *