찾다
CMS 튜토리얼Word누르다WordPress에서는 관련 기사 기능을 어떻게 구현하나요? 다양한 공유 방법

워드프레스에서는 관련 기사 기능을 어떻게 구현하나요? 다음 글에서는 WordPress 코드로 관련 글을 구현하는 여러 가지 방법을 소개하겠습니다. 도움이 되길 바랍니다.

WordPress에서는 관련 기사 기능을 어떻게 구현하나요? 다양한 공유 방법

많은 WordPress 플러그인은 관련 기사의 기능을 구현할 수 있습니다. 플러그인의 장점은 구성이 간단하지만 웹 사이트 속도에 약간의 영향을 미칠 수 있으므로 여전히 많은 사람들이 있습니다. 필요한 기능을 달성하기 위해 코드를 사용하는 것을 선호하지만, 그렇다면 코드 구현에도 단점이 있습니다. 즉, 구성이 복잡하고, 코드를 이해하지 못하는 사람들은 완전히 혼란스럽거나 다른 사람의 코드만 복사할 수 있다는 것입니다. 플러그인을 사용하는 것이 더 좋습니다.

여기서 코드를 사용하여 구현하는 여러 가지 방법을 정리했습니다. 코드의 각 부분의 기능과 원하는 기능을 사용자 정의하는 방법이 모두에게 도움이 되기를 바랍니다. 시작하기 전에 다음 모든 방법으로 출력되는 HTML 코드 형식은 다음과 같은 형식이라는 점을 설명하겠습니다. 필요에 따라 수정할 수 있습니다.

<ul id="xxx">
    <li>* <a title="文章标题1" rel="bookmark" href="文章链接1">文章标题1</a></li>
    <li>* <a title="文章标题2" rel="bookmark" href="文章链接2">文章标题2</a></li>
    ......
</ul>

방법 1: 태그 관련

먼저 모든 태그를 가져옵니다. 기사의 태그 아래에 이 n개의 기사를 가져오면 이 n개의 기사는 이 기사와 관련된 기사입니다. 현재 볼 수 있는 모든 WordPress 관련 기사 플러그인은 이 방법을 사용합니다. 구현된 코드는 다음과 같습니다.

<ul id="tags_related">
<?php
global $post;
$post_tags = wp_get_post_tags($post->ID);
if ($post_tags) {
  foreach ($post_tags as $tag) {
    // 获取标签列表
    $tag_list[] .= $tag->term_id;
  }
  // 随机获取标签列表中的一个标签
  $post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ];
  // 该方法使用 query_posts() 函数来调用相关文章,以下是参数列表
  $args = array(
        &#39;tag__in&#39; => array($post_tag),
        &#39;category__not_in&#39; => array(NULL),  // 不包括的分类ID
        &#39;post__not_in&#39; => array($post->ID),
        &#39;showposts&#39; => 6,            // 显示相关文章数量
        &#39;caller_get_posts&#39; => 1
    );
  query_posts($args);
  if (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
    }
  }
  else {
    echo &#39;<li>* 暂无相关文章</li>&#39;;
  }
  wp_reset_query(); 
}
else {
  echo &#39;<li>* 暂无相关文章</li>&#39;;
}
?>
</ul>

사용 지침: "카테고리 ID가 포함되지 않음"은 이 카테고리에 기사를 표시하지 않는 관련 기사를 의미합니다. 피어의 NULL을 기사 카테고리의 ID로 변경하면 됩니다. ID는 쉼표로 구분하세요. 여기에는 관련 기사 6개만 표시되기 때문에 query_posts()의 tag__in 매개변수에 몇 개의 값을 할당하더라도 첫 번째 태그에 기사가 1개, 두 번째 태그가 없는 한 하나의 태그 아래에 6개의 기사만 표시됩니다. 2개의 기사가 있고, 세 번째에는 3개의 기사가 있습니다. . . . . . 따라서 이 기사에 여러 태그가 있는 경우 태그의 ID를 무작위로 가져와서 tag__in 매개변수에 할당하고 해당 태그 아래에 있는 6개의 기사를 가져옵니다.

방법 2: 카테고리 관련

이 방법은 기사의 카테고리 ID를 얻은 다음 이 카테고리에 속한 기사를 얻음으로써 관련 기사를 얻는 목적을 달성합니다.

<ul id="cat_related"><?phpglobal $post;$cats = wp_get_post_categories($post->ID);if ($cats) {
    $args = array(
		  &#39;category__in&#39; => array( $cats[0] ),
		  &#39;post__not_in&#39; => array( $post->ID ),
		  &#39;showposts&#39; => 6,
		  &#39;caller_get_posts&#39; => 1
	  );
  query_posts($args);

  if (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
    }
  } 
  else {
    echo &#39;<li>* 暂无相关文章</li>&#39;;
  }
  wp_reset_query(); }else {
  echo &#39;<li>* 暂无相关文章</li>&#39;;}?></ul>

방법 3: 태그 관련, SQL 획득

관련 기사를 얻는 원리는 방법 1과 유사하지만 기사를 얻을 때 SQL 문을 사용하여 데이터베이스를 직접 읽어서 무작위로 6개의 관련 기사를 얻습니다. WordPress 함수 대신 query_posts()를 기록합니다.

<ul id="tags_related"><?phpglobal $post, $wpdb;$post_tags = wp_get_post_tags($post->ID);if ($post_tags) {
    $tag_list = &#39;&#39;;
    foreach ($post_tags as $tag) {
        // 获取标签列表
        $tag_list .= $tag->term_id.&#39;,&#39;;
    }
    $tag_list = substr($tag_list, 0, strlen($tag_list)-1);

    $related_posts = $wpdb->get_results("
        SELECT DISTINCT ID, post_title
        FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy
        WHERE {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id
        AND ID = object_id
        AND taxonomy = &#39;post_tag&#39;
        AND post_status = &#39;publish&#39;
        AND post_type = &#39;post&#39;
        AND term_id IN (" . $tag_list . ")
        AND ID != &#39;" . $post->ID . "&#39;
        ORDER BY RAND()
        LIMIT 6");
        // 以上代码中的 6 为限制只获取6篇相关文章
        // 通过修改数字 6,可修改你想要的文章数量

    if ( $related_posts ) {
        foreach ($related_posts as $related_post) {?>
    <li><a href="<?php echo get_permalink($related_post->ID); ?>" rel="bookmark" title="<?php echo $related_post->post_title; ?>"><?php echo $related_post->post_title; ?></a></li><?php   } 
    }
    else {
      echo &#39;<li>暂无相关文章</li>&#39;;
    } }else {
  echo &#39;<li>暂无相关文章</li>&#39;;}?></ul>

방법 4: 분류 관련, SQL 획득

관련 기사를 얻는 원리는 방법 2와 비슷하지만 기사를 얻을 때 SQL 문을 직접 사용합니다. WordPress 함수 query_posts() 대신 데이터베이스를 읽어 관련 기사 레코드 6개를 무작위로 얻습니다.

<ul id="cat_related"><?phpglobal $post, $wpdb;$cats = wp_get_post_categories($post->ID);if ($cats) {
  $related = $wpdb->get_results("
  SELECT post_title, ID
  FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy
  WHERE {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id
  AND {$wpdb->prefix}term_taxonomy.taxonomy = &#39;category&#39;
  AND {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id
  AND {$wpdb->prefix}posts.post_status = &#39;publish&#39;
  AND {$wpdb->prefix}posts.post_type = &#39;post&#39;
  AND {$wpdb->prefix}term_taxonomy.term_id = &#39;" . $cats[0] . "&#39;
  AND {$wpdb->prefix}posts.ID != &#39;" . $post->ID . "&#39;
  ORDER BY RAND( )
  LIMIT 6");

  if ( $related ) {
	  foreach ($related as $related_post) {?>
	<li>* <a href="<?php echo get_permalink($related_post->ID); ?>" rel="bookmark" title="<?php echo $related_post->post_title; ?>"><?php echo $related_post->post_title; ?></a></li><?php
    } 
  }
  else {
    echo &#39;<li>* 暂无相关文章</li>&#39;;
  } }else {
  echo &#39;<li>* 暂无相关文章</li>&#39;;}?></ul>

방법 5: 작성자 관련

이 방법은 관련 기사로 사용할 기사 작성자의 다른 기사를 얻는 것입니다. 기사의 코드는 다음과 같습니다.

<ul id="author_related"><?php
  global $post;
  $post_author = get_the_author_meta( &#39;user_login&#39; );
  $args = array(
        &#39;author_name&#39; => $post_author,
        &#39;post__not_in&#39; => array($post->ID),
        &#39;showposts&#39; => 6,				// 显示相关文章数量
        &#39;orderby&#39; => date,			// 按时间排序
        &#39;caller_get_posts&#39; => 1
    );
  query_posts($args);

  if (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
    }
  }
  else { 
    echo &#39;<li>* 暂无相关文章</li>&#39;;
  }
  wp_reset_query();?></ul>

시간 효율성 비교

위의 각 방법의 효율성을 평가하고 이에 대한 참조를 제공하기 위해 위의 관련 기사 각각의 코드 실행 시간을 측정합니다. 당신의 선택. 위의 각 방법의 최종 계산 시간은 다음과 같습니다.

방법 1: 0.18067908287048초
방법 2: 0.057158946990967초
방법 3: 0.037126064300537초
방법 4: 0.045628070831299초
방법 5 : 0.023991823196411초

추천 학습: "WordPress Tutorial"

위 내용은 WordPress에서는 관련 기사 기능을 어떻게 구현하나요? 다양한 공유 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 露兜即刻에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
WordPress를 사용할 때 보안 고려 사항은 무엇입니까?WordPress를 사용할 때 보안 고려 사항은 무엇입니까?Apr 29, 2025 am 12:01 AM

tosecureawordpresssite, followthesesteps : 1) 정기적으로 Updatewordpresscore, 테마 및 플러그 인스토피치 vulnerabilities

WordPress는 다른 웹 사이트 빌더와 어떻게 비교됩니까?WordPress는 다른 웹 사이트 빌더와 어떻게 비교됩니까?Apr 28, 2025 am 12:04 AM

WordPressExCelsoverWebsiteBuildersDuetoitsflexibility, 확장 성, 및 소수-소수

개발자가 2025 년에 사용할 수있는 5 WordPress 플러그인개발자가 2025 년에 사용할 수있는 5 WordPress 플러그인Apr 27, 2025 am 08:25 AM

2025 년 웹 사이트 개발을위한 7 개의 필수 워드 프레스 플러그인 2025 년에 최상위 WordPress 웹 사이트를 구축하려면 속도, 응답 성 및 확장 성이 필요합니다. 이를 효율적으로 달성하는 것은 전략적 플러그인 선택에 종종 달려 있습니다. 이 기사 Highlig

WordPress는 무엇을 사용 하시겠습니까?WordPress는 무엇을 사용 하시겠습니까?Apr 27, 2025 am 12:14 AM

WordPressCanbeusedForVariousPurposesBeyondBlogging.1) 전자 상거래 : WithoOcommerce, ItcanBecomeafullonlinlineStore.2) 회원체 : 플러그인 슬라이크 embercelableExclusiveContentAreas.3) 포트리오 사이트 : TremeslikeAstraallowstunninglays

WordPress는 포트폴리오 웹 사이트를 만드는 데 좋은가요?WordPress는 포트폴리오 웹 사이트를 만드는 데 좋은가요?Apr 26, 2025 am 12:05 AM

예, WordPressIsexCellentforcreatingAportfoliOweBsite.1) Itoffersnumportfortfolio-specificthemes 'foreasycustomization.2) 플러그인 Suchas'Elementor'LeentuitivedEsign, Thought ToisenhancedWithTools'Yoastoaastoeo', Boosting

웹 사이트를 처음부터 코딩하는 것보다 WordPress를 사용하는 이점은 무엇입니까?웹 사이트를 처음부터 코딩하는 것보다 WordPress를 사용하는 이점은 무엇입니까?Apr 25, 2025 am 12:16 AM

WordPressIsAdvantageOverCodingawebsitefromscratchdueto : 1) EasyofuseanDfasterDevelopment, 2) 유연성 및 스케일링, 3) Strong-inseoandMarketingTools, 5) 비용 효율성 및 6) 정기적 인 보조 장치

WordPress는 컨텐츠 관리 시스템으로 만드는 이유는 무엇입니까?WordPress는 컨텐츠 관리 시스템으로 만드는 이유는 무엇입니까?Apr 24, 2025 pm 05:25 PM

WordPressIsacmsduetoiteseaseofuse, 사용자 정의, 사용자 관리, SEO 및 CommunitySupport

WordPress에 주석 상자를 추가하는 방법WordPress에 주석 상자를 추가하는 방법Apr 20, 2025 pm 12:15 PM

WordPress 웹 사이트에서 의견을 활성화하여 방문자에게 토론에 참여하고 피드백을 공유 할 수있는 플랫폼을 제공하십시오. 이렇게하려면 다음 단계를 따르십시오. 의견 활성화 : 대시 보드에서 설정으로 이동하고 & gt; 토론을하고 댓글 허용 확인란을 선택하십시오. 주석 양식 작성 : 편집기에서 블록 추가를 클릭하고 주석 블록을 검색하여 컨텐츠에 추가하십시오. 사용자 정의 주석 양식 : 제목, 레이블, 자리 표시 자 및 버튼 텍스트를 설정하여 주석 블록을 사용자 정의합니다. 변경 사항 저장 : 업데이트를 클릭하여 주석 상자를 저장하고 페이지 나 기사에 추가하십시오.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경