WordPRess dispose de nombreux plug-ins pour implémenter les fonctions liées aux articles. L'avantage des plug-ins est qu'ils sont simples à configurer, mais ils peuvent avoir un faible impact sur la vitesse du site Web, c'est pourquoi de nombreuses personnes préfèrent toujours utiliser du code pour y parvenir. Les fonctions requises, mais là encore, la mise en œuvre du code présente également des inconvénients, c'est-à-dire que la configuration est compliquée et que les personnes qui ne comprennent pas le code sont complètement confuses ou ne peuvent copier que le code des autres. Il est préférable d'utiliser des plug-ins.
Ici, j'ai compilé plusieurs façons d'utiliser le code pour implémenter les articles associés. Les fonctions de chaque partie du code seront clairement indiquées, ainsi que la façon de personnaliser les fonctions que vous souhaitez. J'espère que cela sera utile à tout le monde. Si vous avez des questions, vous pouvez les poster sur cet article et je vous répondrai dans les plus brefs délais. Avant de commencer, permettez-moi de vous expliquer que le format de code HTML généré par toutes les méthodes suivantes se présente sous la forme suivante et que vous pouvez le modifier si nécessaire :
<ul id="xxx">
<li>* <a title="Titre de l'article 1" rel="bookmark" href="Lien de l'article 1">Titre de l'article 1</a></li>
<li>* <a title="Titre de l'article 2" rel="bookmark" href="Lien de l'article 2">Titre de l'article 2</a></li>
...
</ul>
Méthode 1 : liée aux balises
Obtenez d’abord toutes les balises de l’article, puis obtenez n articles sous ces balises, puis ces n articles sont des articles liés à l’article. Tous les plug-ins d’articles liés à WordPress qui peuvent être consultés utilisent désormais cette méthode. Voici le code implémenté :
<ul id="tags_rated">
<?php
$post_tags = wp_get_post_tags($post->ID);
si ($post_tags) {
foreach ($post_tags comme $tag)
{
// Récupère la liste des balises
$tag_list[] .= $tag->term_id;
}
// Obtention aléatoire d'une balise dans la liste des balises
$post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ];
// Cette méthode utilise la fonction query_posts() pour appeler les articles associés. Voici la liste des paramètres.
$args = tableau(
'tag__in' => tableau ($post_tag),
'category__not_in' => array(NULL), // ID de catégorie non inclus
'post__not_in' => tableau ($post->ID),
'showposts' => 6, // Afficher le nombre d'articles associés
'caller_get_posts' => 1
);
query_posts($args);
si (have_posts()) :
while (have_posts()) : the_post(); update_post_caches($posts ?>);
<li>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title( ?></a); ></li>
<?php end while else : ?>
<li>* Aucun article associé pour l'instant</li>
<?php endif; wp_reset_query(); } ?>
</ul>
Mode d'emploi : "ID de catégorie exclu" signifie que les articles associés n'affichent pas les articles de cette catégorie. Remplacez simplement le NULL dans la même ligne par l'ID de la catégorie d'article. Utilisez des virgules demi-largeur pour séparer plusieurs ID. Étant donné que seuls 6 articles associés sont affichés ici, quel que soit le nombre de valeurs attribuées au paramètre tag__in de query_posts(), seuls 6 articles sous une balise seront affichés, à moins que la première balise n'ait 1 article et la deuxième balise a 2 articles et le troisième a 3 articles. . . . . . Donc, si cet article a plusieurs balises, alors ce que nous faisons est d'obtenir au hasard l'identifiant d'une balise, de l'attribuer au paramètre tag__in et d'obtenir les 6 articles sous la balise.
Méthode 2 : liée à la classification
Cette méthode atteint l'objectif d'obtenir des articles associés en obtenant l'identifiant de catégorie de l'article, puis en obtenant les articles de cette catégorie.
<ul id="cat_rated">
<?php
$cats = wp_get_post_categories($post->ID);
si ($chats) {
$cat = get_category( $cats[0] );
$first_cat = $cat->cat_ID ;
$args = tableau(
'category__in' => tableau ($first_cat),
'post__not_in' => tableau ($post->ID),
'showposts' => 6,
'caller_get_posts' => 1);
query_posts($args);
si (have_posts()) :
while (have_posts()) : the_post(); update_post_caches($posts ?>);
<li>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute();
?>"><?php the_title(); ?></a></li>
<?php end while else : ?>
<li>* Aucun article associé pour l'instant</li>
<?php endif; wp_reset_query(); } ?>
</ul>
Méthode 3 : liée aux balises, acquisition SQL
Le principe d'obtention d'articles associés est similaire à la méthode 1, mais lors de l'obtention d'articles, des instructions SQL sont utilisées pour lire directement la base de données, obtenant ainsi aléatoirement 6 enregistrements d'articles associés, au lieu de la fonction WordPress query_posts().
<ul id="tags_rated">
<?php
$post_tags = wp_get_post_tags($post->ID);
si ($post_tags) {
foreach ($post_tags comme $tag)
{
// Récupère la liste des balises
$tag_list[] .= $tag->term_id;
}
// Obtention aléatoire d'une balise dans la liste des balises
$post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ];
$connexe = $wpdb->get_results("
SELECT {$wpdb->prefix}posts.post_title, {$wpdb->prefix}posts.guid
FROM {$wpdb->prefix}messages, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy
OÙ {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id
ET {$wpdb->prefix}term_taxonomy.taxonomy = 'post_tag'
ET {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}
term_relationships.term_taxonomy_id
ET {$wpdb->prefix}posts.post_status = 'publier'
ET {$wpdb->prefix}posts.post_type = 'post'
ET {$wpdb->prefix}term_taxonomy.term_id = '" . $post_tag . "'
ET {$wpdb->prefix}posts.ID != '" . $post->ID . "'
COMMANDE PAR RAND( )
LIMITE 6");
// Le 6 dans le code ci-dessus sert à limiter l'acquisition de seulement 6 articles liés.
// En modifiant le chiffre 6, vous pouvez modifier le nombre d'articles souhaités
si ( $lié ) {
foreach ($lié à $ Related_post) {
?>
<li>* <a href="<?php echo $ Related_post->guid; ?>" rel="bookmark"
title="<?php echo $ Related_post->post_title; ?>"><?php echo $ Related_post->post_title ?></a></li>
<?php } } autre { ?>
<li>* Aucun article associé pour l'instant</li>
<?php } }?>
</ul>
Méthode 4 : liée à la classification, acquisition SQL
Le principe d'obtention d'articles associés est similaire à la méthode 2, mais lors de l'obtention d'articles, des instructions SQL sont utilisées pour lire directement la base de données, obtenant ainsi aléatoirement 6 enregistrements d'articles associés, au lieu de la fonction WordPress query_posts().
<ul id="cat_rated">
<?php
$cats = wp_get_post_categories($post->ID);
si ($chats) {
$cat = get_category( $cats[0] );
$first_cat = $cat->cat_ID ;
$connexe = $wpdb->get_results("
SELECT wp_posts.post_title, wp_posts.guid
DE wp_posts, wp_term_relationships, wp_term_taxonomy
OÙ wp_posts.ID = wp_term_relationships.object_id
ET {$wpdb->prefix}term_taxonomy.taxonomy = 'catégorie'
ET {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id
ET {$wpdb->prefix}posts.post_status = 'publier'
ET {$wpdb->prefix}posts.post_type = 'post'
ET {$wpdb->prefix}term_taxonomy.term_id = '" . $first_cat . "'
ET {$wpdb->prefix}posts.ID != '" . $post->ID . "'
COMMANDE PAR RAND( )
LIMITE 6");
si ( $lié ) {
foreach ($lié à $ Related_post) {
?>
<li>* <a href="<?php echo $ Related_post->guid; ?>" rel="bookmark"
title="<?php echo $ Related_post->post_title; ?>"><?php echo $ Related_post->post_title ?></a></li>
<?php } } autre { ?>
<li>* Aucun article associé pour l'instant</li>
<?php } }?>
</ul>
Méthode 5 : liée à l'auteur
Cette méthode consiste à obtenir d'autres articles de l'auteur de cet article pour servir d'articles connexes. Le code est le suivant :
<ul id="author_rated">
<?php
$post_author = get_the_author_meta( 'user_login' );
$args = tableau(
'nom_auteur' => $post_auteur,
'post__not_in' => tableau ($post->ID),
'showposts' => 6, // Afficher le nombre d'articles associés
'orderby' => date, // Trier par heure
'caller_get_posts' => 1
);
query_posts($args);
si (have_posts()) :
while (have_posts()) : the_post(); update_post_caches($posts ?>);
<li>* <a href="<?php the_permalink(); ?>" rel="bookmark"
title="<?php the_title_attribute(); ?>"><?php the_title( ?></a></li>)
<?php end while else : ?>
<li>* Aucun article associé pour l'instant</li>
<?php endif; wp_reset_query( ?>
</ul>
Comparaison de l'efficacité du temps
Nous utiliserons un code PHP précédent pour mesurer le temps d'exécution du code de chacun des articles liés ci-dessus afin d'évaluer l'efficacité de chacune des méthodes ci-dessus et de fournir une référence pour votre choix. Ce qui suit consiste à obtenir 6 articles liés dans le même article. Le temps de calcul final de chaque méthode ci-dessus est le suivant :
Méthode 1 : 0,18067908287048 secondes
Méthode 2 : 0,057158946990967 secondes
Troisième méthode : 0,037126064300537 secondes
Méthode 4 : 0,045628070831299 secondes
Cinquième méthode : 0,023991823196411 secondes
Texte original : http://www.ludou.org/how-to-generate-rated-posts-in-wordpress.html