WordPressで記事アーカイブページを作成する方法を詳しく解説

青灯夜游
リリース: 2023-03-20 18:31:01
転載
1947 人が閲覧しました

記事アーカイブページとは何ですか? WordPressで記事アーカイブページを簡単に作成するにはどうすればよいですか?次の記事ではWordPressでアーカイブページを作成する3つの方法を紹介しますので、ぜひ参考にしてください。

WordPressで記事アーカイブページを作成する方法を詳しく解説

記事アーカイブ ページとは何ですか?何に使用するのですか?と疑問に思われるかもしれません。始める前に、まずアーカイブ ページが何であるかを感覚的に理解しましょう。このサイトの サイトマップ をクリックして表示してください。このアーカイブ ページには、私のブログのすべての記事とすべてのページがリストされています。一方で、読者がこのサイトの記事を一度に見たい場合は、このページにアクセスする方がはるかに簡単です。 、SEOに役立つと言われていますが、私はまだ確認していません。最後に、Web サイトのルート ディレクトリに sitemap.xml があることに気づいたでしょうか?なぜこのようなアーカイブ ページを作成するのでしょうか?実際、sitemap.xml は検索エンジンのスパイダーが見るためのもので、このアーカイブ ページは人間が見るためのものです。それでは、このページの作成方法について説明していきますので、興味のある方はご覧ください。

方法 1: SQL 読み取りデータベース

方法 1 で表示されるアーカイブ ページ効果は、このサイトのサイトマップ効果です。実際には、カスタム ページを作成することです。テンプレートの操作 使い方も非常に簡単で、プログラミング技術の知識も必要ありません。設定する必要があるのは、sitemap.xml のリンクを変更するだけです。方法 1 の利点は、SQL を使用してデータベースから直接データを読み取り、データベース接続を 2 つだけ作成することで、WordPress の組み込み関数の使用を回避し、比較的高速であることです。欠点は、コードをコピーする必要があることです。比較的長いです。具体的な手順を見てみましょう:

1. 現在のテーマ ディレクトリに新しい php ファイルを作成し、sitemap.php という名前を付け、page.php 内のすべてのコードを sitemap.php ## にコピーします。 #2. sitemap.php の先頭にあるすべてのコメント、つまり /* と */ およびその間のすべてを削除します
3. 最初の

<?php/*
 * Template Name: sitemap
 * @author: Ludou  
 * @Blog  : https://www.ludou.org/
 */
ログイン後にコピー
に変更します
4. を次のように変更します:

<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>
ログイン後にコピー
最後に、https://www.ludou.org/ の最後の 2 行目を変更します。サイトマップ。xml を独自の sitemap.xml リンクに変更するだけです。変更後は、必ず UTF-8 エンコードで保存してください。そうしないと、中国語が文字化けする可能性があります。上記のコードをそのままWordPressサイトに使用しても理論的には大きな問題はありませんが、見た目に多少の問題があるかもしれませんので、個人の能力に応じてCSSで少し修正するだけで大​​丈夫です。 CSS の例を参照して、テーマ ディレクトリの style.css にコピーすると、この 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。 WordPress 管理の背景を入力します - ページ - 「記事アーカイブ」というタイトルのページを作成します (自分で名前を付けることができます)。内容は記入しないでください。右側のテンプレートを選択して、サイトマップを選択できます。

6. 記事アーカイブ ページが正常に作成されました。

方法 2: wp_get_archives 関数を使用する

方法 2 の操作もコードが少なく非常に簡単ですが、ここではすべての記事の純粋なリストを示します。方法1のようにカテゴリごとに記事が一覧表示されるので少し単調ですが、方法1が面倒な方は試してみると良いでしょう。具体的な操作方法は次のとおりです。

手順 1 ~ 3 は方法 1 と同じです。 手順 4:


the_content(); を次のコードに変更するだけです。

echo &#39;<ul>&#39;;
wp_get_archives(&#39;type=postbypost&show_post_count=1&#39;);
echo &#39;</ul>&#39;;
ログイン後にコピー
手順 5 ~ 6 は方法 1 と同じです。

方法 3: プラグインを使用する

WordPress アーカイブページ用のプラグインは多数ありますので、興味のある方はご自身で検索してください。詳しくはこちらをご覧ください。

推奨学習: 「

WordPress チュートリアル

以上がWordPressで記事アーカイブページを作成する方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:ludou.org
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!