Maison  >  Article  >  Tutoriel CMS  >  Explication détaillée de la façon de créer une page d'archive d'articles dans WordPress

Explication détaillée de la façon de créer une page d'archive d'articles dans WordPress

青灯夜游
青灯夜游avant
2023-03-20 18:31:011905parcourir

Qu'est-ce qu'une page d'archive d'articles ? Comment créer facilement une page d’archive d’articles dans WordPress ? L'article suivant vous présentera 3 méthodes de création de pages d'archives dans WordPress. J'espère qu'il vous sera utile !

Explication détaillée de la façon de créer une page d'archive d'articles dans WordPress

Vous vous demandez peut-être qu'est-ce qu'une page d'archive d'articles et à quoi sert-elle ? Avant de commencer, commençons par avoir une compréhension perceptive de ce qu'est une page d'archive. Veuillez cliquer pour voir le Sitemap de ce site. Vous pouvez voir cette page d'archive listant tous les articles et toutes les pages de mon blog. D'une part, si les lecteurs souhaitent voir les articles de ce site d'un coup, il sera beaucoup plus simple d'aller sur cette page d'autre part ; , on dit que c'est utile pour le référencement , je ne l'ai pas encore confirmé. Enfin, vous avez peut-être réalisé qu'il existe un sitemap.xml dans le répertoire racine du site Web ? Pourquoi créer une telle page d'archives ? En fait, sitemap.xml est destiné aux robots des moteurs de recherche, et cette page d'archive est destinée aux humains. Maintenant, laissez-moi vous expliquer comment créer cette page. Si vous êtes intéressé, vous pouvez y jeter un œil.

Méthode 1 : base de données de lecture SQL

L'effet de page d'archive présenté dans la méthode 1 est l'effet Sitemap de ce site. En fait, il s'agit de créer un modèle de page personnalisé. Il est également très simple à utiliser et ne le fait pas. vous oblige à trop en savoir sur la technologie de programmation, la seule chose à configurer est de modifier le lien du sitemap.xml. L'avantage de la première méthode est que j'utilise SQL pour lire les données directement à partir de la base de données et que j'établis seulement deux connexions à la base de données, évitant ainsi l'utilisation des fonctions intégrées de WordPress, qui sont relativement plus rapides. L'inconvénient est que vous devez copier le code ; est relativement longue. Jetons un coup d'œil aux étapes spécifiques :

1. Créez un nouveau fichier php dans le répertoire du thème actuel, nommez-le sitemap.php, puis copiez tout le code de page.php dans sitemap.php
2. en commençant par sitemap.php Tous les commentaires, c'est-à-dire /* et */, et tout le reste
3 Remplacez le premier

<?php/*
 * Template Name: sitemap
 * @author: Ludou  
 * @Blog  : https://www.ludou.org/
 */

4. Changez

<div class="myArchive">
<ul>
<?php
/**
 * WordPress分类存档页面
 * 作者:露兜
 * 博客:https://www.ludou.org/
 * 最后修改:2012年8月27日
 */
    $categoryPosts = $wpdb->get_results("
    SELECT post_title, ID, post_name, slug, {$wpdb->prefix}terms.term_id AS catID, {$wpdb->prefix}terms.name AS categoryname
    FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy, {$wpdb->prefix}terms
    WHERE {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id
    AND {$wpdb->prefix}terms.term_id = {$wpdb->prefix}term_taxonomy.term_id
    AND {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id
    AND {$wpdb->prefix}term_taxonomy.taxonomy = &#39;category&#39;
    AND {$wpdb->prefix}posts.post_status = &#39;publish&#39;
    AND {$wpdb->prefix}posts.post_type = &#39;post&#39;
    ORDER BY {$wpdb->prefix}terms.term_id, {$wpdb->prefix}posts.post_date DESC");

    $postID = 0;
    if ( $categoryPosts ) :
        $category = $categoryPosts[0]->catID;
        foreach ($categoryPosts as $key => $mypost) :
            if($postID == 0) {
                echo &#39;<li><strong>分类:</strong> <a title="&#39;.$mypost->categoryname.&#39;" href="&#39;.get_category_link($mypost->catID).&#39;">&#39;.$mypost->categoryname."</a>\n";
                echo &#39;<ul>&#39;;
            }
           
            if($category == $mypost->catID) {          
?>
    <li><a title="<?php echo $mypost->post_title; ?>" href="<?php echo get_permalink( $mypost->ID ); ?>"><?php echo $mypost->post_title; ?></a></li>
<?php
                $category = $mypost->catID;
                $postID++;
            }
            else {
                echo "</ul>\n</li>";
                echo &#39;<li><strong>分类:</strong> <a title="&#39;.$mypost->categoryname.&#39;" href="&#39;.get_category_link($mypost->catID).&#39;">&#39;.$mypost->categoryname."</a>\n";
                echo &#39;<ul>&#39;;
?>
    <li><a title="<?php echo $mypost->post_title; ?>" href="<?php echo get_permalink( $mypost->ID ); ?>"><?php echo $mypost->post_title; ?></a></li>
<?php
                $category = $mypost->catID;
                $postID = 1;
            }
        endforeach;
    endif;
    echo "</ul>\n</li>";
?>

<li><strong>页面</strong>
<ul>
<?php
    // 读取所有页面
    $mypages = $wpdb->get_results("
        SELECT post_title, post_name, ID
        FROM {$wpdb->prefix}posts
        WHERE post_status = &#39;publish&#39;
        AND post_type = &#39;page&#39;");

    if ( $mypages ) :
        foreach ($mypages as $mypage) :
?>
    <li><a title="<?php echo $mypage->post_title; ?>" href="<?php echo get_permalink( $mypage->ID ); ?>"><?php echo $mypage->post_title; ?></a></li>
    <?php endforeach; echo "</ul>\n</li>"; endif; ?>
</ul>
<p><a href="https://www.ludou.org/sitemap.xml">查看 sitemap.xml</a></p>
</div>

Enfin, changez la dernière seconde ligne de https://www.ludou.org/sitemap.xml par votre propre lien sitemap.xml Après modification, pensez à l'enregistrer en encodage UTF-8. , sinon les caractères chinois pourraient être tronqués. Théoriquement parlant, il n'y a pas de gros problème si le code ci-dessus est utilisé directement dans votre site WordPress, mais il peut y avoir quelques problèmes d'esthétique. Vous pouvez simplement le modifier un peu avec CSS selon vos capacités personnelles. ici. Un exemple CSS, vous pouvez vous y référer et le copier dans style.css dans le répertoire du thème, ce qui peut obtenir l'effet de style du plan du site de ce site Web :

.myArchive {
	line-height:18px;
	margin:1.5em 0;
	color:#555555;
	font-size:14px;
}
.myArchive h2 {
	font-size:16px;
	margin:0 0 10px;
	font-weight:bold;
}
.myArchive ul {
	line-height:21px;
	padding:0 0 0 2em;
}
.myArchive ul li {
	background:none;
	list-style-type:disc;
	margin:0;
	padding-left:10px;
}
.myArchive a {
	color:#2970A6;
	outline:medium none;
	text-decoration:none;
}
.myArchive a:hover {
	text-decoration:underline;
}
.myArchive ul li ul {
	margin:10px 0;
}
.myArchive ul li ul li {
	list-style-type:circle;
}

5 Entrez l'arrière-plan de gestion WordPress -. Page - Créez une page avec le titre Article Archive (vous pouvez la nommer vous-même), ne remplissez pas le contenu, vous pouvez choisir un modèle à droite, sélectionnez plan du site
6. La page d'archive d'article est créée avec succès.

Méthode 2 : utilisez la fonction wp_get_archives

La méthode 2 est également très simple à utiliser et nécessite moins de code. Cependant, il ne s'agit que d'une pure liste de tous les articles, et elle ne répertorie pas les articles par catégorie comme la méthode 1. C'est un peu monotone, mais si vous trouvez la première méthode problématique, vous pouvez l'essayer. Voici la méthode de fonctionnement spécifique :

Les étapes 1 à 3 sont les mêmes que la méthode 1. Étape 4 :
Changez the_content(); par le code suivant :

echo &#39;<ul>&#39;;
wp_get_archives(&#39;type=postbypost&show_post_count=1&#39;);
echo &#39;</ul>&#39;;

Les étapes 5 à 6 sont également les mêmes que la méthode 1.

Méthode 3 : Utiliser des plug-ins

Il existe de nombreux plug-ins pour les pages d'archives WordPress Si vous êtes intéressé, veuillez les rechercher vous-même, je ne les présenterai pas en détail ici.

Apprentissage recommandé : "Tutoriel WordPress"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer