前提
同じサーバー上の違うデータベースにあるwordpressの投稿情報を取得したいです。
RSSやなんとかAPIでは取得できませんでした。
現在はデータベースから引っ張ってくるか、
こちらのサイトをコピペして使用するかどちらも試していますがうまくいきません。
取得したい情報
タイトル
カスタムフィールドの値(ACF ギャラリーフィールド)
カスタムタクソノミーのターム
実現したいこと
別のwordpressの情報を取得したい
タームでの絞り込み検索も予定しております
【データベースから取得する場合】
該当のソースコード
php
1 $query = "SELECT * FROM {$table_posts} WHERE post_status = '" . $post_status . "' AND post_type = '" . $post_type . "' ORDER BY post_date DESC LIMIT {$limit}"; 2 3$result = $another_wpdb->get_results( $another_wpdb->prepare( $query ) ); 4// echo '\n 記事情報 \n'; 5var_dump($result); 6 7foreach ($result as $post) : 8 9 $post_id = $post->ID; 10 11 // 投稿の画像と費用のフィールドを取得 12 $table_postmeta = 'wp_postmeta'; 13 $query = "SELECT * FROM `wp_postmeta` WHERE `post_id` = '" . $post_id . "' AND `meta_key` = 'フィールドキー1'"; 14 $postmetaResult = $another_wpdb->get_results( $another_wpdb->prepare( $query ) ); 15 16 echo '\\n カスタムフィールド情報 \\n'; 17 var_dump($postmetaResult);
→ 取得できた情報
array(2) { [0]=> object(stdClass)#9442 (4) { ["meta_id"]=> string(7) "2280031" ["post_id"]=> string(5) "54800" ["meta_key"]=> string(11) "gallery_img" ["meta_value"]=> string(150) "a:9:{i:0;s:5:"54802";i:1;s:5:"54801";i:2;s:5:"54803";i:3;s:5:"54805";i:4;s:5:"54804";i:5;s:5:"54806";i:6;s:5:"54808";i:7;s:5:"54807";i:8;s:5:"54809";}" } [1]=> object(stdClass)#9441 (4) { ["meta_id"]=> string(7) "2280049" ["post_id"]=> string(5) "54800" ["meta_key"]=> string(16) "detail_data_cost" ["meta_value"]=> string(9) "550万円" } }
ギャラリーフィールドを使用しており、
["meta_value"]=> string(150) "a:9:{i:0;s:5:"54802";i:1;s:5:"54801";i:2;s:5:"54803";i:3;s:5:"54805";i:4;s:5:"54804";i:5;s:5:"54806";i:6;s:5:"54808";i:7;s:5:"54807";i:8;s:5:"54809";}" }
この欄の「54802」「54801」…を取得したいですが、この取得方法がわからずストップ
【参考サイトからの方法】
functions.phpはデータベース情報以外コピペ
テンプレートファイルで
php
1<?php 2 3 if ( !empty( $_SERVER['SERVER_ADDR'] ) && $_SERVER['SERVER_ADDR'] === 'ダミー' ) : ?> 4 <?php habakiri_switch_blog(); ?> 5 <?php 6 7 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 8 if ($selected_style) { 9 // 絞り込み条件を追加 10 $taxquery_selected_style = array( 11 'taxonomy' => 'all_point', 12 'terms' => $selected_style, 13 'field' => 'slug', 14 ); 15 } 16 $args = array( 17 'post_type' => 'gallery', 18 'orderby' => 'date', 19 'order' => 'DESC', 20 'posts_per_page' => 10, 21 'tax_query' => $taxquery_selected_style, 22 ); 23 24 25 $blog_posts = get_posts($args); ?> 26 <?php if ( $blog_posts ) : ?> 27 <?php foreach ( $blog_posts as $post ) : setup_postdata( $post ); ?> 28 <?php 29 $terms = get_the_terms($post->ID,'all_point'); 30 var_dump($terms); 31 32 $image = ''; 33 $gallery_image = get_field('gallery_img'); 34 35 if ($gallery_image) : 36 $img_src = $gallery_image[0]['url']; 37 $image = '<img src="' . $img_src . '" alt="' . get_the_title() . '">'; 38 else : 39 $image = '<img src="/content/themes/common/images/gallery/thumb_default.gif" alt="">'; 40 endif; 41 42 var_dump($post); 43 ?> 44 45 <h2><?php the_title(); ?></h2> 46 47 <p> 記事 48 <?php the_ID(); ?></p> 49 50 <?php the_field('detail_data_cost'); ?> 51 52 <?php endforeach; wp_reset_postdata(); ?> 53 54 55 <?php endif; ?> 56 <?php habakiri_restore_current_site(); ?> 57 <?php endif; ?>
タクソノミー「all_point」に紐づくタームの一覧や記事に紐づくカスタムフィールドの値なども取得できませんでした。
試したこと
上記を試しました。
補足情報(FW/ツールのバージョンなど)
WordPress 6.0

下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2022/11/28 08:40
2022/11/28 08:52