보관 템플릿에 Yoast WordPress SEO 제목 표시


14

Yoast의 WordPress SEO 플러그인을 사용하면 분류법 용어 아카이브 페이지에 SEO 제목 및 메타 설명을 추가 할 수 있습니다. 그런 다음 문서 헤드에 사용됩니다.

분류 체계 아카이브 템플릿에서 분류 용어의 SEO 제목을 H1로 표시하려고합니다.

게시물, 게시물 유형 또는 페이지에서이 작업을 수행하는 것이 쉽습니다.

echo get_post_meta($post->ID, '_yoast_wpseo_title', true); 

보관 템플릿에서는 작동하지 않습니다.

누구든지 이것을 작동시키는 방법을 알고 있습니까?

스크린 샷 예

특정 태그 용어의 제목입니다. 아카이브 템플릿에이 제목을 표시하려고하지만 사용자 지정 분류 용어로 표시하려고합니다.

태그 아카이브 편집 화면

최종 코드

이것이 내가 archive.php템플릿 에서 사용한 것입니다 . 맞춤 분류 체계를 사용하는 경우 작동합니다. 태그 또는 카테고리는 아래 Mike Madern의 답변을 참조하십시오.

<h1 class="archive-title">
<?php
if ( is_tax() ) :                                                                   
    $taxonomy = get_queried_object()->taxonomy;
    $term_id = get_queried_object()->term_id;
    $meta   = get_option( 'wpseo_taxonomy_meta' );
    $title  = $meta[$taxonomy][$term_id]['wpseo_title'];
    //printf( '<pre>%s</pre>', print_r( get_option( 'wpseo_taxonomy_meta' ), 1 ) );
    if ( isset($meta) && !empty($title) ) :         
        echo apply_filters( 'the_title', $title );
    else :
        single_term_title();    
    endif;
endif;                              
?>
</h1>  

답변:


19

아카이브 SEO 타이틀 가져 오기

맞춤 게시물 유형 보관함 제목을 정의한 경우 다음을 통해 얻을 수 있습니다.

$titles = get_option( 'wpseo_titles' );
$title  = $titles['title-ptarchive-POST_TYPE'];

echo apply_filters( 'the_title', $title );

POST_TYPE자신 만의 맞춤 게시물 유형 으로 교체해야합니다 .

모든 wpseo_title변수 를 표시하려면 다음을 사용하십시오.

printf( '<pre>%s</pre>', print_r( get_option( 'wpseo_titles' ), 1 ) );

따라서 필요한 것을 쉽게 선택할 수 있습니다.

용어 SEO 제목 가져 오기

카테고리

이 코드를 사용하면 정의한 SEO 제목을 얻을 수 있습니다.

$cat_id = get_query_var( 'cat' );
$meta   = get_option( 'wpseo_taxonomy_meta' );

$title  = $meta['category'][$cat_id]['wpseo_title'];

echo apply_filters( 'the_title', $title );

태그

이 코드를 사용하면 정의한 SEO 제목을 얻을 수 있습니다.

$tag_id = get_query_var( 'tag' );
$meta   = get_option( 'wpseo_taxonomy_meta' );

$title  = $meta['post_tag'][$tag_id]['wpseo_title'];

echo apply_filters( 'the_title', $title );

모든 wpseo_taxonomy_meta변수 를 표시하려면 다음을 사용하십시오.

printf( '<pre>%s</pre>', print_r( get_option( 'wpseo_taxonomy_meta' ), 1 ) );

이런 식으로 구조와 사용 가능한 변수를 볼 수 있습니다.


SEO > 제목 및 메타 > 게시물 유형에 제목을 추가했습니다 .
Mike Madern

나는 해결책으로 대답을 개선했다 :-)
Mike Madern

나는 당신이 내 마지막 게시물 편집을 놓친 것 같아요 : -PI 버전이 추가되었습니다 $tag_id.
Mike Madern

1
코드에 대해 대단히 감사합니다. 나는 이것을 결코 알아낼 수 없었습니다. 맞춤 분류법으로 작동하도록 약간 변경했습니다.
Mattvic

대단하다. 나는 전자가 id를 반환하고 후자는 slug를 반환하여 코드가 "정의되지 않은 인덱스"통지를 던지도록 get_queried_object()->term_id대신에을 사용해야했습니다 get_query_var(). 또한,이 있는지 확인하는데주의를 기울여야 이다 에서 아무것도 세트가 $meta['post_tag|category']당신이 아니라 정의되지 않은 인덱스 통지를 얻을 수 있습니다로. (WP 4.2.2, btw)
cabgfx

5

포스트 루프의 아카이브 페이지에서 다음 코드 줄을 추가하여 작동시킵니다.

echo get_post_meta(get_the_ID(), '_yoast_wpseo_title', true); 

그것이 당신을 위해 작동하는지 또는 다른 해결책을 제공 할 것인지 말하십시오.


불행히도 작동하지 않았습니다. 아카이브에서 첫 번째 게시물의 SEO 제목을 보여줍니다. 아마도이 데이터가 어디에 저장되어 있는지 DB로 뛰어 들어야 할 것입니다.
Mattvic

루프에서 사용하고 있습니까? 코드를 보여줄 수 있습니까?
Vinod Dalvi

내 코드를 추가했습니다. 루프의 각 게시물 제목이 아닌 페이지 제목을 출력하고 싶다고 설명했는지 확실하지 않습니다.
Mattvic

이것이 바로 내가 찾던 것입니다. 루프에서 SEO 제목을 출력합니다. 또한 get_the_ID ()를 $ post-> ID로 대체했습니다
gerbz

이것은 내 생명을 구합니다. 좋은 ..
Mukii 쿠마

0

카테고리 및 태그에 대한 초점 키워드 얻기

프로그래밍 방식으로 범주 또는 태그 의 포커스 키워드 를 얻으려면 다음 두 가지 방법 중 하나를 사용하십시오.

            /** Method 1. Tap into the options directly. **/
            $meta = get_option( 'wpseo_taxonomy_meta' ); // needed only once, so keep this outside/before your foreach loop.

            $posttags = get_the_tags();
            if ($posttags) {
                foreach( $posttags as $tag ) {
                    echo $meta['post_tag'][$tag->term_id]['wpseo_focuskw'];
                }
            }

이것은 기본적으로 Mike가 자신의 게시물 끝에 사용하는 접근 방식입니다.

또는

            /** Method 2. Use Yoast's function. **/
            $posttags = get_the_tags();
            if ($posttags) {
                foreach( $posttags as $tag ) {
                    echo WPSEO_Taxonomy_Meta::get_term_meta( $tag->term_id, 'post_tag', 'focuskw' );
                }
            }

이 방법으로 메타 옵션을 직접 가져와야 할 필요가 없기 때문에 두 번째 접근 방식을 선호합니다.

에서 functions.php, if class_exists( 'WPSEO_Taxonomy_Meta' )Yoast SEO 사용을 중단하려는 경우를 대비하여 Yoast 기능 을 테스트 하여 자신의 기능에 래핑 할 수 있습니다.

일부 배경

원래 질문에서 언급했듯이 get_post_meta( $tag->term_id, '_yoast_wpseo_focuskw', true);카테고리 및 페이지에서는 작동하지 않습니다 (아무것도 반환하지 않습니다).

왜 그럴까요?

카테고리 및 태그의 경우 포커스 키워드가 데이터베이스의 다른 곳에 저장되기 때문입니다. wp_postmeta평소와 같이 테이블 내부에 저장되는 대신 테이블 내부에 wp_optionsJSON 객체로 묻혀 있습니다.

위의 방법으로 이러한 값에 액세스 할 수 있습니다.


저처럼 분류 체계의 이름을 기억할 수없는 경우 마지막으로, (예 : 태그 분류를 사용하는 이유가되지 명백 post_tag뿐 아니라 tag당신이 카테고리 나 태그를 편집 할 때, 단지 URL을 확인 : 그것은 보여줄 것 …taxonomy=category…또는 등.


0

답글 카테고리 및 태그에 대한 포커스 키워드 얻기

//
나머지 API로 감사합니다.

/ wp-json / wp / v2 / categories? slug =slug_name

plugin.in 사용 방법 1

라인 변경

$meta['post_tag'][$tag->term_id]['wpseo_focuskw'];

$meta['category'][$param_post_id]['wpseo_focuskw'];

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.