>  기사  >  CMS 튜토리얼  >  WordPress에서 기사 아카이브 페이지를 만드는 방법에 대한 자세한 설명

WordPress에서 기사 아카이브 페이지를 만드는 방법에 대한 자세한 설명

青灯夜游
青灯夜游앞으로
2023-03-20 18:31:011952검색

기사 보관 페이지란 무엇인가요? WordPress에서 기사 보관 페이지를 쉽게 만드는 방법은 무엇입니까? 다음 기사에서는 WordPress에서 아카이브 페이지를 만드는 3가지 방법을 소개하겠습니다. 도움이 되길 바랍니다.

WordPress에서 기사 아카이브 페이지를 만드는 방법에 대한 자세한 설명

기사 아카이브 페이지가 무엇이며 어떤 용도로 사용되는지 궁금하실 겁니다. 시작하기 전에 먼저 아카이브 페이지가 무엇인지에 대해 개념적으로 이해해 봅시다. 이 사이트의 사이트맵을 보려면 클릭하세요. 내 블로그의 모든 기사와 모든 페이지를 나열하는 이 아카이브 페이지를 볼 수 있습니다. 한편, 독자들이 이 사이트의 기사를 한 번에 보고 싶다면 이 페이지로 이동하는 것이 훨씬 쉬울 것입니다. , SEO에 도움이 된다고 하는데, 아직 확인하지 못했습니다. 마지막으로, 웹 사이트의 루트 디렉터리에 sitemap.xml이 있다는 것을 깨달았을 것입니다. 왜 그런 아카이브 페이지를 만드는가? 실제로 sitemap.xml은 검색 엔진 스파이더가 볼 수 있는 것이고, 이 아카이브 페이지는 사람이 볼 수 있는 것입니다. 이제 이 페이지를 만드는 방법에 대해 이야기하겠습니다. 관심이 있으시면 살펴보세요.

방법 1: SQL 읽기 데이터베이스

방법 1에 표시된 아카이브 페이지의 효과는 실제로 이 사이트의 사이트맵 효과이며, 조작도 매우 간단합니다. 프로그래밍 기술에 대해 너무 많이 알 필요는 없습니다. 구성해야 할 유일한 것은 sitemap.xml의 링크를 수정하는 것입니다. 방법 1의 장점은 SQL을 사용하여 데이터베이스에서 직접 데이터를 읽고 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로 변경합니다. ; Into:

<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/sitemap.xml의 마지막 두 번째 줄을 자신의 sitemap.xml 링크로 변경하세요. 수정 후 UTF-8 인코딩으로 저장하세요. 그렇지 않으면 한자가 깨질 수 있습니다. 이론상으로는 위의 코드를 워드프레스 사이트에서 직접 사용한다면 큰 문제는 없으나, 미학적으로 문제가 있을 수 있으니, 개인 능력에 따라 CSS로 조금 수정해주시면 됩니다. 여기에서 CSS 예제를 참조하고 테마 디렉토리의 style.css에 복사할 수 있습니다. 그러면 이 웹사이트 사이트맵의 스타일 효과를 얻을 수 있습니다:

.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~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 Tutorial"

위 내용은 WordPress에서 기사 아카이브 페이지를 만드는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 ludou.org에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제