PHP WordPress

WordPressの記事一覧をPHPで自作する

WordPressで作ったブログの記事一覧を見たい時ってありません?

しかし、WordPressの管理画面の投稿一覧はわかりにくいんですよね。

WordPressの投稿一覧

投稿一覧ではわかりにくいので、自分で記事一覧をPHPで自作してみました。

自作したものは↓こちらです。

自作WordPress記事一覧

記事の「ID」「タイトル」「公開日時」を一覧にしました。

投稿者「みか」自己紹介

  • パソコンとデータベースが大好き
  • 自社でネットワーク・システム・機器管理、Webサイト構築
  • 自社向けのシステムをMicrosoft AccessやPHPで多数構築
  • Excelでの作業はVBAを使って効率化
  • ロックバンド「VARS」でベース担当
  • 「VARS」のWebサイト、ブログも構築
  • 「VARS」のライブを観に来てね!https://vasofatum.jp/live/

自分の管理用フォルダを作る

WordPressには管理用の「wp-admin」というフォルダがあります。

それと同じように自分でPHPを使って作ったスクリプトを置く管理用のフォルダをサーバーに作ります。

ブログのフォルダ直下に「manage」というフォルダを作りました。

ブログのフォルダ直下に「manage」というフォルダを作りました。

この管理用フォルダの名前は、ブログの記事のリンク名やカテゴリーのスラッグとは重ならないようにします。

PHPで記事一覧のスクリプト

データベースに接続するスクリプト

データベースに接続するスクリプトを作ります。

別ファイルにしておくと、他にも自作したい時に使えるので便利です。

ファイル名は「func_db.php」にしました。

<?php
function get_db(){
    $dsn = "mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET;
    try{
        // DB接続
        $db = new PDO($dsn, DB_USER, DB_PASSWORD);
    }catch (PDOException $e){
        echo "Error:".$e->getMessage();
        die();
    }
    return $db;
}

記事一覧を表示するスクリプト

記事一覧を表示するスクリプトです。

ファイル名は「blog_list.php」にしました。

<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", FALSE);
header("Pragma: no-cache");
header("X-Robots-Tag: noindex, nofollow");

require_once "../wp-config.php";
require_once "func_db.php";

$db = get_db();

$sql = "SELECT ID,post_title,post_date 
		FROM {$table_prefix}posts 
		WHERE post_type = 'post' AND post_status = 'publish' 
		ORDER BY post_date DESC";
$res = $db->query($sql);
if($res){
    $data = $res->fetchAll(PDO::FETCH_ASSOC);
    $data_cnt = count($data);
    if($data_cnt > 0){
		echo "<table><tr><td class='td_c'>ID</td><td class='td_c'>タイトル</td><td class='td_c'>公開日時</td></tr>";
		foreach ($data as $key => $val) {
			echo "<tr><td>".$val['ID']."</td><td>".$val['post_title']."</td><td>".$val['post_date']."</td></tr>";
		}
		echo "</table>";
		echo "<style>td{padding:5px;border:solid gray 1px;} .td_c{text-align:center;}</style>";
    }
}

$res = null;
$db = null;

2~6行目:キャッシュを無効にしています。

7行目:インデックスを無効にしています。

9行目:WordPressの設定を読み込んでいます。

10行目:データベースに接続するスクリプト「func_db.php」を読み込んでいます。

12行目:「func_db.php」でデータベースに接続しています。

14~17行目:記事が保存されているテーブルから、公開済の記事を公開日時を降順で取得するSQLです。

18行目:SQLを実行しています。

19~30行目:取得したデータをブラウザに表示しています。

32~33行目:データベース接続を閉じます。

「func_db.php」と「blog_list.php」をサーバーの「manage」にアップロードし、ブラウザで「https://ドメイン/manage/blog_list.php」にアクセスすると下図のように表示されます。

自作WordPress記事一覧

-PHP, WordPress
-, , ,