勉強したことのメモ

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ダッシュボードの記事一覧ページにタグ検索機能を追加する方法

WordPressダッシュボードの記事一覧ページは、デフォルトだと「キーワード検 ...

Advanced Custom Fieldsでセレクトメニューを動的に生成する方法
Advanced Custom Fieldsでセレクトメニューを動的に生成する方法

WordPressでカスタムフィールド設定用のプラグインAdvanced Cus ...

WordPressのContact Form 7プラグインで入力内容確認及び送信完了ページを実装する方法
WordPressのContact Form 7プラグインで入力内容確認及び送信完了ページを実装する方法

WordPressのContact Form 7プラグインで実装されたお問い合わ ...

WordPressの5系から搭載されたブロックエディタ(Gutenberg)を元に戻す方法
WordPressの5系から搭載されたブロックエディタ(Gutenberg)を元に戻す方法

WordPressを5系にアップデートしたところ記事投稿ページのエディタが大幅に ...

WordPressで記事検索時に投稿ID順にならない場合の対応方法
WordPressで記事検索時に投稿ID順にならない場合の対応方法

WordPressでサイト上から記事検索(キーワード検索)を行った場合、通常であ ...