勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

他所のサーバからWordPressの記事情報をpostIDを指定して取得する方法

   2024/03/06  PHP WordPress CMS

他所のサーバからWPの記事IDを指定した上で、当該IDのタイトル・アイキャッチ画像URL・記事URLを取得したかった。取得元はPHPが利用不可なためAjax等でWP側にアクセスし、jsonデータ等でデータを引っ張ってきたい。WP側の対応方法をメモ。

 

ソースコード

<?php
//WordPress関連の関数を使うために呼び出し(ディレクトリは適宜変更)
require './wp-load.php';

do{

    //記事IDが無い場合
    if( !$_GET['post_id'] ){
        $return['status'] = 400; //ステータスコードは適宜変更
        break;
    }

    $post_id = $_GET['post_id'];
    $post_info = get_post( $post_id );

    //記事が見つからない場合
    if( !$post_info ){
        $return['status'] = 404; //ステータスコードは適宜変更
        break;
    }

    $return = array(
        'post_data' => array(
            'title' => $post_info->post_title, //タイトル
            'link' => get_permalink( $post_id ), //リンク
            'thumbnail' => get_the_post_thumbnail_url( $post_id ), //アイキャッチのURL
        ),
        'status' => 200,
    );

}while(0);

echo json_encode($return);

 

その他

カスタムフィールドから記事情報を取得したい、とか場合は先にカスタムフィールドで検索して記事IDを取得するのが良さそう。それが難しそうな場合はpostmetaテーブルから直接引っ張ってくるようにそこだけSQL文を書くのが早いかも。以下SQL文の例。

SELECT post_id 
FROM wp_postmeta 
WHERE meta_key LIKE 'item_00%' 
AND meta_value = 'xxx';

meta_keyやmeta_valueの値は適宜変更すること。

 - PHP WordPress CMS

  関連記事

WordPressでスケジュール実行される日時を調べる方法

WordPressであるシステムを実装し、その際に毎日1回スケジュール実行(WP ...

WordPressでカテゴリに優先順位を決め複数カテゴリが設定されている記事の場合に優先順位の高いカテゴリの記事のみ取得

WordPressで精度の高い関連記事を表示させたい。色々試したところテーマファ ...

WordPressでコンテンツ(記事)内に広告を差し込む方法

WordPress内でヘッダーやフッターではなく、コンテンツ内にバナー広告を差し ...

gzip圧縮とキャッシュをhttpd.confで設定する方法

今まで共用サーバーで使っていたWordPressをVPSに移した。せっかくなので ...

WP Social Bookmarking LightでSNSボタンが表示されない際の対応方法

WordPressでWordPress WP Social Bookmarkin ...