programing

워드프레스에서 다음/이전 포스트 href 및 제목을 가져오는 방법

javajsp 2023. 3. 20. 21:27

워드프레스에서 다음/이전 포스트 href 및 제목을 가져오는 방법

하나의 기둥을 보는 것에 관한 것입니다.이전 및 다음 블로그 게시물에 대한 링크를 다음과 같이 설정하려고 합니다.

<a class="prevpost" href="linktoprevpost" title="prev post's title">&nbsp;</a>
<a class="nextpost" href="linktonextpost" title="next post's title">&nbsp;</a>

여기서 두 링크는 block과 지정된 너비 및 높이를 사용하여 배경으로 이미지를 가져옵니다.링크된 게시물의 제목은 a-tag의 title-attribute를 통해 접근할 수 있어야 하며, 사용자는 이를 마우스 포인터로 볼 수 있어야 합니다.
현재 카테고리의 링크 투고도 제한하고 싶습니다.그래서 나는 그 방법을 찾아야 한다.

  1. 전/다음 포스트의 href가 붙은 a태그
  2. 현재 보고 있는 것과 동일한 범주에 속합니다.
  3. 배경 이미지 때문에 내부 텍스트 없이
  4. 제목에 이전/다음 게시물 이름을 붙여서
  5. 커스텀 css-class를 사용하여


카테고리의 매칭은 첫 번째 레벨만 하면 됩니다.내 페이지를 3개의 주요 카테고리로 나누었기 때문입니다.사용하고 있다

$a = get_the_category(get_the_ID());
$cat = $a[0]->name;

첫 번째 카테고리의 이름을 가져와 header.disclass에서 추가 body-class로 설정합니다.내가 그걸 재사용할 수 있을까?

또한 previous_post_link()와 next_post_link()를 이렇게 사용하는 것도 알게 되었습니다.

next_post_link('%link', '', TRUE);

같은 카테고리의 게시물을 내부 콘텐츠 없이 보내주시면 1과 2와 3이 해결됩니다.하지만 4와 5를 얻으려면 다른 방법이 필요할 것 같아요.

Wordpress 버전 3.4.1 사용.

기능이나 필터는 필요 없습니다.사용만 하면 됩니다.get_adjacent_post대신next_post_link그리고.prev_post_link에 주의해 주세요.get_adjacent_post이전 게시물과 다음 게시물을 얻으려면 여기를 참조하십시오. 이전 게시물과 제목 속성을 얻으려면 다음을 사용하십시오.

$prev_post = get_adjacent_post(false, '', true);
if(!empty($prev_post)) {
echo '<a href="' . get_permalink($prev_post->ID) . '" title="' . $prev_post->post_title . '">' . $prev_post->post_title . '</a>'; }

다음 게시물과 해당 게시물의 제목 속성을 얻으려면 다음과 같이 하십시오.

$next_post = get_adjacent_post(false, '', false);
if(!empty($next_post)) {
echo '<a href="' . get_permalink($next_post->ID) . '" title="' . $next_post->post_title . '">' . $next_post->post_title . '</a>'; }

알겠습니다.

제 코드는 다음과 같습니다.

$p = get_adjacent_post(1, '', 1);
if(!empty($p)) echo '<a class="prevpost" href="'.$p->guid.'" title="'.$p->post_title.'">&nbsp</a>';
$n = get_adjacent_post(1, '', 0);
if(!empty($n)) echo '<a class="nextpost" href="'.$n->guid.'" title="'.$n->post_title.'">&nbsp</a>';

이 함수는 링크를 생성하기 위해 사용할 수 있는 이전/다음 게시의 개체를 반환합니다.첫 번째 파라미터는 같은 cat의 투고를 제한하기 위한 것입니다.
어제 워드프레스 코덱스로 몇 번 검색했지만, 이 기능을 발견하지 못하고, 우연히 이 기능을 발견하게 되었습니다.

만약 누군가가 더 나은/심플한/빠른 방법을 가지고 있다면, 수락된 답변을 얻기 위해 글을 올려주세요.

스텝 1 : 이 기능을 아래 함수에 추가하면 됩니다.php

// its to ssolve single page next and previous liinks
# get_adjacent_post( $in_same_cat = false, $excluded_categories = '', $previous = true )
function echo_next_previous_post_link($fmg_name="link" ,$selector="next")
{  

if ($selector=="next") {
    $next_post_obj  = get_adjacent_post( '', '', false );
    $next_post_ID   = isset( $next_post_obj->ID ) ? $next_post_obj->ID : '';
    $next_post_link     = get_permalink( $next_post_ID );
    $next_post_title = get_the_title($next_post_ID);
    if ($fmg_name=="link") {
        echo $next_post_link ;
    }
    else {
        echo $next_post_title ;
    }
}
else {
    $previous_post_obj  = get_adjacent_post( '', '', true );
    $previous_post_ID   = isset( $previous_post_obj->ID ) ? $previous_post_obj->ID : '';
    $previous_post_link     = get_permalink( $previous_post_ID );
    $previous_post_title = get_the_title($previous_post_ID);
    if ($fmg_name=="link") {
        echo $previous_post_link ;
    }
    else {
        echo $previous_post_title ;
    }
}

}

순서 2: 투고 URL과 제목을 원하는 페이지로 인쇄할 수 있습니다.

<a href="<?php echo_next_previous_post_link("link","next"); ?>"><?php echo_next_previous_post_link("title","next"); ?></a>                            

<a href="<?php echo_next_previous_post_link("link","previous"); ?>"><?php echo_next_previous_post_link("title","previous"); ?></a>  

이전 코드는 작동하지 않았습니다.나는 다음과 같이 왔다.

<?php 
  $prev = get_adjacent_post(true,'',true); 
  $next = get_adjacent_post(true,'',false);
?>
      
<div>
  <a href="<?php echo get_permalink($prev->ID);?>">Previous</a>
  <p><?php echo get_the_title($prev->ID );?></p>
</div>
                                  
<div>
  <a href="<?php echo get_permalink($next->ID);?>">Next</a>
  <p><?php echo get_the_title($next->ID );?></p>
</div>

<?
echo '<a href="'.get_permalink( get_the_ID()-1 ).'" title="'.get_the_title( get_the_ID()-1 ).'">Previous</a>'; 
echo '<a href="'.get_permalink( get_the_ID()+1 ).'" title="'.get_the_title( get_the_ID()-1 ).'">Next</a>';

?>

언급URL : https://stackoverflow.com/questions/11379549/how-to-get-next-previous-post-hrefs-and-titles-in-wordpress