2017-03-07 8 views
2

WordPress 다중 사이트 네트워크를 사용하여 짧은 사이트 내에서 기본 사이트의 맞춤 게시물 유형에 액세스해야합니다.switch_to_blog() within WordPress shortcode

예를 들어 당사의 주요 사이트 (ID 1)는 맞춤형 게시물 유형 (사례 연구)이 저장되는 곳입니다. ID가 사례 연구의 게시물 ID입니다

//[casestudy] 
add_shortcode('casestudy', 'casestudy_shortcode'); 

function casestudy_shortcode($atts) { 
    $a = shortcode_atts(array(
     'id' => '' 
    ), $atts); 

    switch_to_blog(1); 

    //Get fields from custom post type with Advanced Custom Fields Pro 
    //and return HTML output with them 

    restore_current_blog(); 
} 

그런 다음 [casestudy id="123"]으로 단축 코드를 호출 functions.php에서 나는 다음과 같은 있습니다.

문제는 이것이 사례 연구 HTML을 훌륭하게 반환하지만 페이지의 일부 기능을 손상 시키며 '최근 게시물'위젯을 기본 사이트의 블로그 게시물로 채 웁니다.

무엇이 잘못 됐는지에 대한 아이디어가 있습니까? 감사.

+2

단축 코드에서'restore_current_blog()'전에 실제로 return을 호출합니까? (코드 주석을 읽는 것처럼 들린다.) 대신 HTML을 반환하는 것이 마지막 줄이어야합니다. – birgire

+1

@birgire OP의 질문에 대한 대답이라고 생각합니다. 게시해야합니다. –

답변

2

답변으로 내 의견을 추가하십시오 HTML이 그것을 호출하기 전에 반환되기 때문에

가 OP 코드 주석 읽기, 그것은 호출되지 않습니다 restore_current_blog() 것 같습니다.

return 부분이 마지막 줄인지 확인하십시오.

+0

완벽한 감사합니다, 그것을 알아 차리지 못했습니다! 변수를 가져 오기 위해 블로그로 전환했습니다. – wadclapp