web-dev-qa-db-fra.com

Filtrer les messages de la page d'accueil dans Buddypress

J'aimerais supprimer les articles de blog de la page d'accueil s'ils appartiennent à une certaine catégorie. Comment puis-je m'y prendre dans Buddypress (de préférence sans plugin)?

1
idea

Si vous entendez filtrer le flux d’activités de la page d’accueil par catégorie d’articles de blog, il n’est pas possible d’utiliser les balises, fonctions ou requêtes de modèles dans BuddyPress. J'ai lutté avec ce même problème pendant des mois et j'ai finalement abandonné. Si quelqu'un peut me prouver le contraire, j'aimerais entendre la solution.

Si vous n'utilisez pas le flux d'activités sur votre page d'accueil, vous pouvez simplement utiliser la classe WP_Query pour filtrer les publications.

Mon cas d'utilisation pour filtrer les publications de blog dans le flux d'activité consistait à avoir des pages de flux d'activité distinctes pour chaque catégorie de publication.

La chose la plus proche que j'ai pu trouver était le plugin BuddyPress Links qui crée un type de publication de liens qui utilise des catégories et qui est intégré au flux d'activité BuddyPress, mais il est nécessaire de beaucoup de personnalisation pour le faire fonctionner comme je le voulais.

Boone Gorges (BuddyPress Lead Developer) répond à un sujet de support sur l'utilisation de types de publication personnalisés avec BuddyPress:

Il n’existe pas vraiment de support intégré dans BP pour les types de paie personnalisés, mais leur prise en charge n’est pas différente de la prise en charge d’autres types de contenu personnalisé dans BP. Consultez le composant Skeleton de BuddyPress pour obtenir des conseils sur l’intégration de contenu personnalisé à la navigation dans BP, etc.

Dans les prochaines semaines, je pourrais créer un nouveau plug-in qui fournisse un cadre pour la prise en charge des types de publication personnalisés dans BP (édition frontale, intégration dans les menus de navigation, etc.). J'ai eu à faire ce genre de choses pour quelques clients ces derniers mois et je pense avoir une idée de certaines bonnes stratégies.

Lors d'un WordCamp, j'ai longuement parlé à Boone de l'ajout de méta ou de catégories personnalisées à l'un des composants de BuddyPress et de l'utilisation de la méta pour filtrer le flux d'activité. Il a dit que cela pouvait être fait, mais que cela devrait être entièrement codé à partir de rien et que BuddyPress ne l’a pas pris en charge. Il a également déclaré que la meilleure façon d'y parvenir serait de créer un nouveau composant BuddyPress personnalisé.

1
Chris_O

Pouvez-vous expliquer ce que vous essayez de faire un peu mieux. Voulez-vous filtrer certaines catégories de certains utilisateurs ou certaines catégories de tous les utilisateurs?

EDIT: Voici quelques articles que j'ai trouvés à ce sujet.

Maintenant, je n'ai pas essayé de voir si cela fonctionne car je n'ai pas actuellement de site buddypress pour déconner et il en faut beaucoup pour obtenir un test et savoir quels sont vos paramètres

  1. Celui-ci étant le plus difficile, il faut télécharger ce plugin Filtre de catégorie de page de garde et en extraire le code.
  2. Selon cette citation ( trouvée ici ):

Tout comme vous utilisez "The Loop" pour parcourir les publications dans WordPress, chaque type de contenu dans BuddyPress possède sa propre boucle personnalisée.

En utilisant ces boucles dans votre modèle, vous pouvez générer tout type d’informations et personnaliser le mode d’affichage du contenu dans votre thème BuddyPress.

Le thème BuddyPress par défaut (/ wp-content/themes/bp-default) utilise toutes les boucles personnalisées disponibles dans BuddyPress. C'est un bon exemple d'utilisation des boucles dans des situations d'utilisation réelles.

Vous pouvez utiliser les boucles personnalisées WordPress dans un thème BuddyPress, à condition que vous les utilisiez.

Vous pouvez trouver la page de codex de la boucle WordPress en cliquant ici et celle dont vous avez spécifiquement besoin en cliquant ici

Voici le code dont vous auriez besoin:

La ligne suivante <?php if ( is_home() ) { aide buddypress à déterminer que cela ne doit se produire que sur la page d'accueil.

<?php if ( is_home() ) { query_posts($query_string . '&cat=-3,-8');} ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<div class="post">

<!-- Display the Title as a link to the Post's permalink. -->
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>

<!-- Display the date (November 16th, 2009 format) and a link to other posts by this posts author. -->
<small><?php the_time('F jS, Y') ?> by <?php the_author_posts_link() ?></small>

<div class="entry">
<?php the_content(); ?>
</div>

<p class="postmetadata">Posted in <?php the_category(', '); ?></p>
</div> <!-- closes the first div box -->

<?php endwhile; else: ?>
<p>Sorry, no posts matched your criteria.</p>
<?php endif; ?>
1
xLRDxREVENGEx