Je construis un plug-in de lecteur RSS et j'aimerais avoir des conseils sur la manière de stocker les données et les paramètres de ce plug-in.
L'idée est de pouvoir entrer un ensemble de sources de flux et d'associer chacune de ces sources à une ou plusieurs catégories. Ainsi, vous pouvez avoir plusieurs catégories, par exemple. sports, la politique ayant chacun leurs propres sources d’aliments.
Donc par exemple:
Lorsque les éléments de flux de ces sources de flux sont importés toutes les quelques heures via Cron, ils sont ensuite stockés en tant que types de publication personnalisés. Chaque élément de fil doit bien sûr être associé à la source de flux.
Lorsqu'il s'agit d'afficher des éléments de fil, le plugin utilisera cette logique:
Je ne suis toujours pas sûr de la manière dont toutes ces données doivent être stockées.
Le plugin aura une page de paramètres et pour cela, je suis décidé à tout stocker dans la table wp_options.
Cependant, en ce qui concerne les sources, les catégories et les éléments d’alimentation, je ne comprends toujours pas comment les stocker au mieux.
Des suggestions sur la façon de faire ceci?
Je lisais des informations sur le plugin CPTonomies qui semble faire ce dont j'avais besoin, mais je veux que la fonctionnalité soit intégrée à ce plugin et je ne peux pas utiliser un autre plugin externe.
'feed'
'feed_category'
'feed_item'
.'feed_item'
, ajoutez post_meta qui établit le lien entre 'feed'
et 'feed_item'
. Par exemple, update_post_meta( $item_id, 'feed', $feed_id );
Votre boucle peut parfaitement être utilisée avec la structure suggérée. À l'étape 3, vous interrogez toutes les publications avec post meta 'feed_id' = $feed_id
.
Liens du Codex:
Pour obtenir les éléments de fil, utilisez le code suivant:
$category_id = 123;
$the_query = new WP_Query( array(
'post_type' => 'feed',
'feed_category' => $category_id
) );
$items = array();
while ( $the_query->have_posts() ) : $the_query->the_post();
$feed_items = get_posts( array(
'post_type' => 'feed_item',
'meta_key' => 'feed_id',
'meta_value' => $post->ID,
'numberposts' => -1
) );
$items = array_merge( $items, $feed_items );
endwhile;
wp_reset_postdata();
// now $items contains your feed items from the feeds in the feed_category with id 123
update_option()
, get_option()
etc.wp_set_object_terms()
etc.update_post_meta()
, get_post_meta()
etc.