옵션에서 설정된 블로그 페이지 URL 가져 오기


답변:


70

Sagive의 답변을 바탕으로 실제 링크를 얻으려면 get_permalink ()에서 ID를 래핑해야합니다.

<a href="<?php echo get_permalink( get_option( 'page_for_posts' ) ); ?>">Our Blog</a>

25

WordPress 4.5부터 다음을 사용할 수 있습니다.

get_post_type_archive_link( 'post' );

게시물이 홈페이지에 표시되는지 또는 지정된 페이지에 표시되는지에 관계없이 올바른 URL을 가져 오는 논리를 처리합니다.


4

영구 링크를 설정하기 전에 옵션을 확인하는 가장 좋은 방법은 다음과 같습니다.

if ( get_option( 'page_for_posts' ) ) {
   echo '<a href="'.esc_url(get_permalink( get_option( 'page_for_posts' ) )).'">'.esc_html__( 'Blog', 'textdomain' ).'</a>';
} else {
   echo '<a href="'.esc_url( home_url( '/' ) ).'">'.esc_html__( 'Blog', 'textdomain' ).'</a>';
}

3

get_optionof page_for_posts를 사용 하여 페이지 ID를 변수에 지정하거나 원하는 경우 에코 할 수 있습니다.

<?php $postsPageId = get_option('page_for_posts'); ?>
<a href="index.php?p=<?php echo $postsPageId; ?>">Our Blog</a>

defualt get_option에 대한 추가 정보는 옵션 참조를 방문하십시오.


1

Hugh Man에 동의하면 링크를 에코하기 전에 옵션을 확인하는 것이 좋지만 정적 페이지를 첫 페이지로 설정하고 게시물 페이지를 비워 둘 수 있습니다. 이 경우 링크는 홈 URL을 가리 킵니다. 더 나은 방법은 게시물 보관 페이지에 폴백을 제공하는 것입니다. 이 같은:

function slug_all_posts_link() {
    if ( 'page' == get_option( 'show_on_front' ) ) {
        if ( get_option( 'page_for_posts' ) ) {
            echo esc_url( get_permalink( get_option( 'page_for_posts' ) ) );
        } else {
            echo esc_url( home_url( '/?post_type=post' ) );
        }
    } else {
        echo esc_url( home_url( '/' ) );
    }
}

당신은 필요 없어 및 기능esc_urlget_permalinkhome_url
Tolea Bivol에게
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.