サポート » マルチサイト » マルチサイトで他サイトのタグ関連記事を表示させたい

  • 現在wordpress3.9.2でマルチサイトを構築中です。

    色々調べ挑戦したのですが解決できなかったのでこちらで質問させて頂きます。

    ちょっと説明が難しいのですが、
    Aサイト(タグa)の投稿記事の下に、
    Aサイトで(タグa)の付いた投稿記事一覧
    Bサイトで(タグa)の付いた投稿記事一覧
    Cサイト中(タグa)の付いた投稿記事一覧
    のように関連記事を表示したいと思っています。

    Aサイトで(タグa)の付いた投稿記事一覧は通常のタグ関連記事一覧(自動?)で表示できるのですがB、C・・・がうまく表示できません。

    <?php switch_to_blog(); ?>などで試行錯誤したのですがどうにもこうにもならなくなってしまいました。

    どなたか力をお貸しください。

    よろしくお願いしま。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • こんにちは、

    PHPが理解できればですが、

    functions.php

    <?php
    function multisite_another_blog_has_tag_contents( $blog_ids,$tags = '',$number_posts = -1 ) {
    
        global $wpdb;
    
        foreach ( $blog_ids as $blog_id ) {
    
            switch_to_blog( $blog_id );
    
            query_posts( array('tag'=> $tags ,'posts_per_page' => $number_posts ));
    
            if ( ms_is_switched() ) {
    
                $details = get_blog_details( $blog_id );
    
                echo '<h1><a href="' . esc_url( $details->siteurl ) . '">' . esc_html( $details->blogname ) . '</a></h1>';
                if ( have_posts() ) {
    
                    while ( have_posts() ) {
    
                        the_post();
    
                        printf('<p><a href="%1$s">%2$s</a></p>', esc_url( get_permalink() ), get_the_title() );
                    }
                }
            }
    
            restore_current_blog();
        }
    }
    ?>

    テンプレートに

    <?php
    $blog_ids     = array( 29, 24 );//ブログのIDを配列で
    $tags         = 'アーカイブ化,canvas';//タグ名をカンマ区切りで
    $number_posts = 5;//表示件数を数字で
    
     multisite_another_blog_has_tag_contents( $blog_ids, $tags, $number_posts );
    ?>

    注意:ブログのパーマリンク構造によっては、404になる

    ブログのパーマリンクが、archives/tag という風になっている場合
    http://example.com/wp/archives/tag/customposttype

    404になるようです

    その場合

    http://example.com/wp/tag/customposttype/

    といったURLでブログにアクセスできるようにしてください

    トピック投稿者 kumataro

    (@kumataro)

    nobita 様

    ご回答ありがとうございます。

    PHPは詳しくないですがサイト・タグを指定して表示させるコードですよね?

    私の説明不足で申し訳ありません。

    通常プラグインなどで関連記事を表示する際
    A記事(Aサイト)はaカテゴリに属しているから
    Aサイトのaカテゴリに属する記事を関連記事として表示していると思います。

    通常はaカテゴリに属しているというのは自動?で読み取っていると思います。

    なのでタグを自動?で取得し
    A記事(Aサイト)の投稿記事の下に、
    1、Aサイト(タグを自動?で取得)関連記事一覧
    2、Bサイト(A記事のタグを自動?で取得)関連記事一覧
    3、Cサイト(A記事のタグを自動?で取得)関連記事一覧
    と、したいと思っています。

    1、はプラグイン等で表示できます。
    2、3、はやはり指定しないと出来ないのかなと思い、
    タグ指定をカスタムフィールドで対応しようと思ったのですがエラー・・・。

    もし、難しいようなら WordPressの手法以外でも、

    http://tenman.info/labo/snip/?p=5126

    な、形で jQueryでインクルードすることもできます(一覧の記事量がものすごく多くなければ )

    よかったら、試してみてください

    実際にこのやり方で表示しているサンプル

    http://tenman.info/labo/snip/?page_id=1236

    左のタイトルリンクにhoverすると右側に、記事がロードされます

    おまけ:
    固定ページでjsonを出力させて、それを別のブログで、受け取って表示する方法

    http://tenman.info/labo/snip/?p=1870

    後は、xml-rpc rss などをキーワードに調べるといろいろ出てくると思います。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「マルチサイトで他サイトのタグ関連記事を表示させたい」には新たに返信することはできません。