web-dev-qa-db-fra.com

La page de couverture ne doit afficher qu'une catégorie de publications, notamment les post-it avec une boîte aux lettres personnalisée.

J'ai besoin de code pour obtenir une catégorie - y compris son post-it collant et une boîte aux lettres personnalisée sur ma page d'accueil. J'utilise vingt douze. J'ai créé un thème pour enfants. J'ai WordPress 3.6 sur un site wordpress.org.

J'ai sélectionné "vos derniers messages" sous Page statique dans l'onglet de personnalisation du thème de ma page d'accueil. Je souhaite que les publications d'une seule catégorie (vacances) apparaissent sur ma page d'accueil. Je veux qu’ils incluent le post-it dans cette catégorie avec ma boîte aux lettres personnalisée. Obtenir la boîte aux lettres sélectionnée est important.

J'ai changé le style.css - dans le thème de mon enfant - pour modifier l'apparence de la boîte aux lettres sélectionnée:

/*  change Featured Post box appearance */
article.sticky .featured-post {
    border-top: 4px double #4275b1;
    border-bottom: 4px double #4275b1;
    color: #08b8c3;
    font-size: 13px;
    font-size: 1.25rem;
    line-height: 3.692307692;
    margin-bottom: 24px;
    margin-bottom: 1.714285714rem;
    text-align: center;
}

Ensuite, j'ai changé le libellé qui apparaît dans la boîte aux lettres sélectionnée dans mon (thème enfant) content.php.

La combinaison de ces deux fichiers avec ma sélection "Derniers articles" et l'index standard.php donne à la page de garde le look que je souhaite pour le design ... mais je souhaite qu'une seule catégorie de messages (vacances) apparaisse sur la page de couverture et Je souhaite que le post-it de cette catégorie affiche la boîte aux lettres sélectionnée. Je reçois le post-it (avec la boîte) ainsi que tous les autres posts (de toutes les catégories) lorsque j'utilise le fichier index.php standard.

J'ai donc testé (modification du fichier index.php) et réussi à afficher les deux publications de la catégorie vacances. Et aucune des autres catégories. Cependant, bien que le post collant (de la catégorie "vacances") apparaisse, j'ai perdu la partie "boîte aux lettres en vedette". (La catégorie "vacances" est la seule catégorie dans laquelle j'ai un post-it.)

Donc, je pense qu'au lieu d'utiliser uniquement une catégorie, je dois en quelque sorte incorporer la partie "est collante" pour que la boîte aux lettres sélectionnée soit affichée.

Quelqu'un peut-il m'aider avec 1. quel code modifier et 2. dans quel modèle je peux le faire? J'ai recherché et testé pendant 3 jours. Alors je me suis arrêté et je viens de mettre le code d’index original qui remplit la page de garde avec la boîte aux lettres adhésive et en vedette de droite, mais plusieurs catégories.

Merci pour toute aide ou suggestion - espérons-le à un niveau pour quelqu'un qui est juste assez technique pour être dangereux :)

Je pense que ce message peut donner une partie de la réponse dont j'ai besoin, mais je veux juste une catégorie de message (s) sur la page de couverture - y compris le celui que j’ai défini comme collant et qui devrait apparaître avec la boîte aux lettres sélectionnée.

1
skj

Cela ne peut être qu'une partie du problème. C'est un peu de code à lire (et vous devriez poster le code pertinent en ligne pour que la question ne dépende pas d'un site externe) et votre description est un peu difficile à suivre, mais ...

Vous ne devriez pas du tout utiliser une requête secondaire (j'en suis sûr) et vous ne devriez certainement pas utiliser query_posts pour le faire.

Il convient de noter que l’utilisation de cette option pour remplacer la requête principale d’une page peut augmenter les temps de chargement de la page , dans le pire des cas plus que doubler la quantité de travail nécessaire ou plus . Bien que facile à utiliser, la fonction est également sujette à la confusion et à des problèmes par la suite. Voir la note ci-dessous sur les avertissements pour plus de détails.

http://codex.wordpress.org/Function_Reference/query_posts (c'est moi qui souligne)

Je pense que vous avez besoin d'un filtre sur pre_get_posts. Quelque chose comme ça:

function one_cat_front_wpse_110327($qry) {
  if (is_front_page() && $qry->is_main_query()) {
    $qry->set('cat',123);
  }
  return $qry;
}
add_filter('pre_get_posts','one_cat_front_wpse_110327');

Cela devrait limiter les résultats à la catégorie 123. Évidemment, remplacez-le par la catégorie correcte.

1
s_ha_dum

Si vous me demandez, je le ferais par snippet personnalisé, il vous suffit simplement d'ajouter à functions.php

 function my_category_queries ($ query) {
 if ($ query-> is_home () && $ query-> is_main_query ()) {
 $ query-> set ('category_name' , 'wperror'); 
} 
} 
 add_action ('pre_get_posts', 'my_category_queries'); 

Si vous le cochez mieux, la première partie de la fonction l'applique uniquement à la page d'accueil et à la requête principale, tandis que l'autre partie est liée à la catégorie slug dans cet exemple 'wperror'

Si vous souhaitez des extraits plus avancés sur ce thème, veuillez consulter la rubrique . N'afficher qu'une seule catégorie sur la page d'accueil

0
wpfixeu