2017-03-07 22 views
2

ワードプレスマルチサイトネットワークを使用すると、私はメインサイトのカスタムポストタイプに短いコードでアクセスする必要があります。ワードプレスショートコード

たとえば、私たちのメインサイト(ID 1)はカスタムポストタイプ(ケーススタディ)が保存されている場所です。 functions.phpで、私は次のようにあります

//[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(); 
} 

IDは、ケーススタディのポストIDですその後[casestudy id="123"]でショートを呼び出します。

問題は、これを実行するとケーススタディHTMLが正常に返されますが、ページの一部の機能が中断され、「最近の投稿」ウィジェットにメインサイトのブログ投稿が追加されます。

何が問題になっているかについてのアイデアはありますか?ありがとう。

+2

あなたのショートコードで 'restore_current_blog()'の前に本当にreturnを呼び出しますか? (それはあなたのコードのコメントを読んで、それのように聞こえる)。代わりにHTMLを返すのが最後の行にする必要があります。 – birgire

+1

@birgire私はそれがOPの質問に対する答えだと思います。投稿する必要があります。 –

答えて

2

答えとして私のコメントの追加:HTMLはそれを呼び出す前に返されるため

は、OPコードのコメントを読むと、それは、呼び出されることはありませんrestore_current_blog()のように見えます。

returnの部分が最後の行であることを確認してください。

+0

完璧なおかげで、気づかなかった!私は変数を取得するためにブログに切り替えました。 – wadclapp

関連する問題