勉強したことのメモ

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を4.8.2にして不具合

WordPressを4.8.2にすると記事の新規追加時にウィジウィグの挙動がおか ...

WordPressのWP-Mail-SMTPプラグインが動かない

PHPのバージョンを下げてからWordPressで外部メールサーバが使えるWP- ...

WordPressにてACFで設定したカスタムフィールドの値を元に記事を並べ替える方法

WordPressにてAdvanced Custom Fieldsで設定したカス ...

PHP8系で「Warning: Attempt to read property "xxxxxx" 」エラーの対応方法

PHP8系&WordPress6.4.3で「Warning: Attem ...