WordPress 内に DB から取得した情報を表示する PHP を作ってみた

phpMyAdmin とか WordPress のプラグインとか、もしくは MySQL に直接アクセスできるならこんな事はしなくても良いと思います。しかしながら例えば、頻繁に管理者ユーザーだけが毎回、特定の条件で一覧情報を取得したい場合などは、管理者ユーザー用の PHP を用意しておけば簡単で便利ではないでしょうか。という事で、WordPress 内に wp_posts テーブルの情報を表示する PHP を作ってみました。

PHP ファイルを作成

cd /var/www/html/wp-admin

mkdir app

cd app

vi post-view.php
<?php
require_once( '/var/www/html/wp-load.php' );

if ( ! current_user_can( 'administrator' ) ) {
    wp_redirect( wp_login_url() );
    exit;
}

$results = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}posts order by ID" );

echo "<table border=1>";
echo "<tr><th>ID</th><th>post_type</th><th>post_title</th></tr>";
foreach ($results as $result) {
    echo "<tr>";
    echo "<td>" . esc_html($result->ID) . "</td>";
    echo "<td>" . esc_html($result->post_type) . "</td>";
    echo "<td>" . esc_html($result->post_title) . "</td>";
    echo "</tr>";
}
echo "</table>";
?>

作成した PHP にブラウザでアクセス

参考

https://codex.wordpress.org/Database_Description#Table:_wp_posts

タグ: