勉強したことのメモ

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にて記事内で動画(mp4)ファイルの再生する方法

WordPressでyoutube等の動画サイトの埋め込みタグではなく、mp4フ ...

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

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

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

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

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

WordPressでWordPress WP Social Bookmarkin ...