2017-10-10 31 views
0

작업 : CMS 사용자가 게시물을 Twitter와 공유 할 때 사용되는 이미지를 변경할 수 있습니다. Yoast는 트위터 카드를 만들 때 추천 이미지를 사용합니다.WordPress 용 테마에서 Yoast의 WPSEO_Twitter 클래스를 올바르게 확장하는 방법

접근 방식 : 게시물에 맞춤 메타 필드 추가. WPSEO_Twitter 클래스와 개인 함수 output_metatag() 만 확장하십시오. 사용자 지정 메타 필드가 비어 있지 않으면 기본값 대신 사용자 지정 필드 값을 사용하십시오.

코드 :

if (class_exists('WPSEO_Twitter')) : 
    remove_action('wpseo_head', array('WPSEO_Twitter', 'get_instance'), 40); 
    add_action('wpseo_head', array('EXAMPLE_WPSEO_Twitter', 'get_instance'), 40); 

    class EXAMPLE_WPSEO_Twitter extends WPSEO_Twitter { 
     // etc 
    } 
endif; 

문제 : remove_action가 작동되지 않고 트위터 메타 코드가 중복되고있다. 플러그인의 클래스와 확장 클래스가 모두 실행됩니다.

링크 :https://github.com/Yoast/wordpress-seo/blob/trunk/frontend/class-twitter.php

답변

0

나는 당신이 원하는 무엇 이미지를 변경 wpseo_twitter_image에 필터를 추가하는 것이 더 쉽습니다 생각합니다. 내가 제대로 이해하면

add_filter("wpseo_twitter_image", function($img) { 
    if($myimg = get_post_meta(get_the_ID(), "custom-twitter-image", true)) { 
     return $myimg; 
    } 
    return $img; 
}); 

의 라인을 따라

뭔가 아마, 당신을 위해 작동합니다.