WordPressで、同じDB内の別サイトから、カスタムフィールドの画像などを読

  • 不明 のアバター

    WordPressで、同じDB内の別サイトから画像などを読み込んだ際のパスなどを変更したい

    下記のコードで、テキストなどの読み込みは問題なくできているのですが、
    カスタムフィールドの画像のパスなどが、別サイトのものではなく、自身のサイトのものになってしまっており、この部分を読み込んでいる別サイトのパスに変更したいのですが、やり方がわからず行き詰まってしまいました。。

    こちらのウェブページ(https://2inc.org/blog/2015/10/23/5059/)を拝見し、アップロードディレクトリなどは変更する必要がありそう‥などの情報は得られまして、
    ここからどうして良いかがわからずに困っております。

    PHPやDBに関する知識が少ないため、質問の仕方に拙い部分があるかと思い、
    大変恐縮ではございますが、どうぞよろしくお願いいたします。

    <?php
    
    global $wpdb;
    
    $news = array();
    
    $args = array(
      'post_type' => 'post',
      'post_status' => 'publish'
    );
    
    $temp_prefix = 'wp_'; //テーブルプリフィックスを切り替え
    $old_prefix = $wpdb->set_prefix($temp_prefix);
    wp_cache_init();
    add_filter( 'upload_dir', '_switch_blog_upload_dir');
    
    $wpq = new WP_Query($args);
    if ($wpq->have_posts()) {
      while ($wpq->have_posts()) {
        $wpq->the_post(); ?>
    
    <!-- ここにテキストや画像を読み込み -->
    
    <?php
      }
    }
    
    // 初期状態に戻す
    $wpdb->set_prefix($old_prefix);
    wp_cache_init();
    remove_filter( 'upload_dir', '_switch_blog_upload_dir' );
    ?>

    ■functions.php

    function _switch_blog_upload_dir( $upload_dir ) {
    $pattern = ‘/^(https?://[^/]+)/’;
    $replacement = home_url();
    $upload_dir[‘url’] = preg_replace( $pattern, $replacement, $upload_dir[‘url’] );
    $upload_dir[‘baseurl’] = preg_replace( $pattern, $replacement, $upload_dir[‘baseurl’] );
    $upload_dir[‘path’] = preg_replace( $pattern, $replacement, $upload_dir[‘path’] );
    $upload_dir[‘basedir’] = preg_replace( $pattern, $replacement, $upload_dir[‘basedir’] );
    return $upload_dir;
    }

  • 不明 のアバター

    このトピックを作成する際、ブログのアドレスまたは投稿理由が指定されていませんでした。

    このサポートフォーラムは WordPress.com レンタルブログ専用です。インストール型 WordPress ブログに関する質問は、ここではなく WordPress.org フォーラム でお願いします。

    もし違いが分からない場合は、こちらの情報が参考になるかもしれません。

    もしブログへのリンクを含めるのを忘れた場合、リンク情報を含めて返信をしてください。そうすることで、他の人が質問に答えやすくなります。

    このメッセージは自動投稿されました。

  • 不明 のアバター

    WordPressで、同じDB内の別サイトから画像などを読み込んだ際のパスなどを変更したい

    下記のコードで、テキストなどの読み込みは問題なくできているのですが、
    カスタムフィールドの画像のパスなどが、別サイトのものではなく、自身のサイトのものになってしまっており、この部分を読み込んでいる別サイトのパスに変更したいのですが、やり方がわからず行き詰まってしまいました。。

    こちらのウェブページ(https://2inc.org/blog/2015/10/23/5059/)を拝見し、アップロードディレクトリなどは変更する必要がありそう‥などの情報は得られまして、
    ここからどうして良いかがわからずに困っております。

    PHPやDBに関する知識が少ないため、質問の仕方に拙い部分があるかと思い、
    大変恐縮ではございますが、どうぞよろしくお願いいたします。

    <?php
    
    global $wpdb;
    
    $news = array();
    
    $args = array(
      'post_type' => 'post',
      'post_status' => 'publish'
    );
    
    $temp_prefix = 'wp_'; //テーブルプリフィックスを切り替え
    $old_prefix = $wpdb->set_prefix($temp_prefix);
    wp_cache_init();
    add_filter( 'upload_dir', '_switch_blog_upload_dir');
    
    $wpq = new WP_Query($args);
    if ($wpq->have_posts()) {
      while ($wpq->have_posts()) {
        $wpq->the_post(); ?>
    
    <!-- ここにテキストや画像を読み込み -->
    
    <?php
      }
    }
    
    // 初期状態に戻す
    $wpdb->set_prefix($old_prefix);
    wp_cache_init();
    remove_filter( 'upload_dir', '_switch_blog_upload_dir' );
    ?>

    ■functions.php

    function _switch_blog_upload_dir( $upload_dir ) {
    $pattern = '/^(https?://[^/]+)/';
    $replacement = home_url();
    $upload_dir['url'] = preg_replace( $pattern, $replacement, $upload_dir['url'] );
    $upload_dir['baseurl'] = preg_replace( $pattern, $replacement, $upload_dir['baseurl'] );
    $upload_dir['path'] = preg_replace( $pattern, $replacement, $upload_dir['path'] );
    $upload_dir['basedir'] = preg_replace( $pattern, $replacement, $upload_dir['basedir'] );
    return $upload_dir;
    }
  • 不明 のアバター
  • トピック「WordPressで、同じDB内の別サイトから、カスタムフィールドの画像などを読」には新しい返信をつけることはできません。