teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

文章をわかりやすく更新いたしました

2017/08/01 03:37

投稿

twilightranigh
twilightranigh

スコア9

title CHANGED
@@ -1,1 +1,1 @@
1
- WordPressで、同じDB内の別サイトから、カスタムフィールドの画像などを読み込んだ際のパスを変更したい
1
+ 同じDB内の別サイトから、カスタムフィールドの画像などを読み込んだ際のパスを変更したい
body CHANGED
@@ -1,14 +1,16 @@
1
1
  ###前提・実現したいこと
2
- WordPressで、同じDB内の別サイトから画像などを読み込んだ際のパスなどを変更したい
2
+ 同じDB内の別サイトから、カスタムフィールドの画像などを読み込んだ際のパスを変更したい
3
3
 
4
- 下記のコードで、テキストなどの読み込みは問題なくできているのですが、
5
- 画像パスなどが、別サものではなく自身のサイトのものになってまっおり
4
+ メインWP(A)と同じドメン内サブディレクトリに別でブのWP(B)をンスールしています。DBも同じで接頭辞だけが違います。
6
- この部分を変更したいです。
7
5
 
8
- こちらのサイト(https://2inc.org/blog/2015/10/23/5059/)を拝見し、
9
- アップロードディレクトリなどは変更する必要がありう‥などの情報は得られ
6
+ こで、サブWP(B)の一部に、メインのWP(A)の情報の一部を読み込下記のコードでデータを取得しています。
10
- ここからどうして良いかがわからずに困っております。
11
7
 
8
+ テキストなどの読み込みはメインのWP(A)のものを問題なく取得できているのですが、
9
+ カスタムフィールドの画像のパスなどが、メインのWP(A)のものではなく、サブのWP(B)のサイトのものになってしまっており、この部分を変更する方法がわからず困っております。
10
+
11
+ こちらのウェブページ(https://2inc.org/blog/2015/10/23/5059/)を参考にさせていただき、
12
+ アップロードディレクトリなどを書き換える必要がありそう‥と思い、functions.php に下記のコードを追加したりしてみましたが、画像のパスには変化はありませんでした。
13
+
12
14
  PHPやDBに関する知識が少ないため、質問の仕方に拙い部分があるかと思い、
13
15
  大変恐縮ではございますが、どうぞよろしくお願いいたします。
14
16
 

2

functions\.php に「_switch_blog_upload_dir」というアップロードディレクトリを書き換える関数を追加し、add_filter でフックさせてみましたが変わらず

2017/08/01 03:37

投稿

twilightranigh
twilightranigh

スコア9

title CHANGED
File without changes
body CHANGED
@@ -27,8 +27,8 @@
27
27
 
28
28
  $temp_prefix = 'wp_'; //テーブルプリフィックスを切り替え
29
29
  $old_prefix = $wpdb->set_prefix($temp_prefix);
30
- //wp_set_wpdb_vars();
31
30
  wp_cache_init();
31
+ add_filter( 'upload_dir', '_switch_blog_upload_dir');
32
32
 
33
33
  $wpq = new WP_Query($args);
34
34
  if ($wpq->have_posts()) {
@@ -44,5 +44,19 @@
44
44
  // 初期状態に戻す
45
45
  $wpdb->set_prefix($old_prefix);
46
46
  wp_cache_init();
47
+ remove_filter( 'upload_dir', '_switch_blog_upload_dir' );
47
48
  ?>
49
+ ```
50
+
51
+ ###functions.php
52
+ ```
53
+ function _switch_blog_upload_dir( $upload_dir ) {
54
+ $pattern = '/^(https?:\/\/[^\/]+)/';
55
+ $replacement = home_url();
56
+ $upload_dir['url'] = preg_replace( $pattern, $replacement, $upload_dir['url'] );
57
+ $upload_dir['baseurl'] = preg_replace( $pattern, $replacement, $upload_dir['baseurl'] );
58
+ $upload_dir['path'] = preg_replace( $pattern, $replacement, $upload_dir['path'] );
59
+ $upload_dir['basedir'] = preg_replace( $pattern, $replacement, $upload_dir['basedir'] );
60
+ return $upload_dir;
61
+ }
48
62
  ```

1

コード部分の表記を修正いたしました

2017/07/28 11:18

投稿

twilightranigh
twilightranigh

スコア9

title CHANGED
File without changes
body CHANGED
@@ -13,6 +13,7 @@
13
13
  大変恐縮ではございますが、どうぞよろしくお願いいたします。
14
14
 
15
15
  ###該当のソースコード
16
+ ```
16
17
  <?php
17
18
 
18
19
  global $wpdb;
@@ -43,4 +44,5 @@
43
44
  // 初期状態に戻す
44
45
  $wpdb->set_prefix($old_prefix);
45
46
  wp_cache_init();
46
- ?>
47
+ ?>
48
+ ```