勉強したことのメモ

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

  関連記事

Contact form7で送信数を測定(トラッキングタグ)
Contact form7で送信数を測定(トラッキングタグ)

contact form7でフォーム送信が完了した時点で計測されるようにトラッキ ...

Advanced Custom FieldsでGoogleMapの使用する方法
Advanced Custom FieldsでGoogleMapの使用する方法

Advanced Custom FieldsでGoogleMapを使用したかった ...

WordPressのテーマファイル内で取得したオブジェクトを指定のフィールド名でソートする方法
WordPressのテーマファイル内で取得したオブジェクトを指定のフィールド名でソートする方法

WordPressのテーマファイル内で記事やカテゴリ一覧等を取得するとオブジェク ...

WordPressのcontact form7で500エラーの対応方法
WordPressのcontact form7で500エラーの対応方法

WordPressプラグインのcontact form7で送信ボタンを押し、ロー ...

WordPressにて投稿記事及び固定ページの記事数を取得・表示する方法
WordPressにて投稿記事及び固定ページの記事数を取得・表示する方法

WordPressにてページ内に記事数を表示したいというケースがあった。また、通 ...