質問編集履歴
3
文章をわかりやすく更新いたしました
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
同じDB内の別サイトから、カスタムフィールドの画像などを読み込んだ際のパスを変更したい
|
body
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
###前提・実現したいこと
|
2
|
-
|
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 でフックさせてみましたが変わらず
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
コード部分の表記を修正いたしました
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
|
+
```
|