WordPress記事の更新日付を変更する方法 【post_modified】

  • 投稿 : 2014-10-06

前知識

記事IDについて

http://blog.example.com/wp-admin/post.php?post=8944&action=edit
投稿画面の編集画面でアドレスバーに上記のような感じで表示されているかと思います。
8894という部分が、記事IDです。

post_modified,post_modified_gmt

日本時間(東京)は、 GMT + 9です。

post_modified_gmt +9時間 = post_modified

DBを直接修正する

phpMyAdmin

SELECT `ID`,`post_modified`,`post_modified_gmt` FROM `wp_posts`

phpMyAdminで「post_modified」「post_modified_gmt」を直接編集するという方法が簡単ですが、数が多いと実用的ではないかと思います。

EXCELとかと同じ感じで、項目を書き換えるだけでDBに反映されます。

SQLを実行する

UPDATE wp_posts SET post_modified="2014-10-06 04:15:03", post_modified_gmt=CONVERT_TZ("2014-10-06 04:15:03","+00:00","-09:00") WHERE ID=8944

8944 = 記事ID
2014-10-06 04:15:03 =更新日付

SQLを実行する場合は、上記のようなSQLで実現可能です。

ブラウザから変更できるPHPを作成する

導入イメージ


記事IDと更新日付を入力して更新ボタンを押す
更新日付は、2014-10-06 04:15:03のような形式で入力


更新後の画面

補足:PHP内でWordPressのタグを使えるようにする

「index.html」の1行目に下記を追加することで、静的ファイルでもwpタグを実行できるようになります。
index.html
<?php require './wp/wp-blog-header.php'; ?>
WordPressと静的ファイルを共存させて部分CMS化する | webOpixel

wp-blog-header.phpをインクルードするだけで、PHPのなかでWPのタグ(関数)が使えるようになります

サンプルソース

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
</head>
<body>
<?php require '../../../wp-blog-header.php'; ?>

<?php if($_POST['post-id']){ ?>
<?php

$pdo_update = new PDO("mysql:dbname=DB名;host=localhost", "ユーザー名", "パスワード");

    $id = $_POST['post-id'];
    $post_modified = $_POST['update'];

   //update
   $sql = 'UPDATE wp_posts SET post_modified="'.$post_modified .'", post_modified_gmt=CONVERT_TZ("'.$post_modified .'","+00:00","-09:00") WHERE ID='.$id;
   $stmt = $pdo_update->prepare($sql);
   $stmt->execute();
   echo $sql;
   echo "\n";

?>
<br/>
<br/>
■更新結果<br/>
記事ID:<?php echo $_POST['post-id']; ?><br/>
更新日付:<?php echo $_POST['update']; ?><br/>
<br/>
<?php }else{ ?>

<?php } ?>
■入力欄
<form method="POST" action="./update-post-modified.php">
記事ID:<input type="text" name="post-id"><br/>
更新日付:<input type="text" name="update"><br/>
<input type="submit" name="btn1" value="更新">
</form>
</body>
</html>

上記を、「update-post-modified.php」として保存して、それをブラウザから呼び出してください。
※注意
require '../../../wp-blog-header.php'
の箇所は、このPHPがある場所からwp-blog-header.phpを示すように指定してください。

$pdo_update = new PDO("mysql:dbname=DB名;host=localhost", "ユーザー名", "パスワード");
この部分は、各自環境に合わせて書き換えてください。

スポンサーリンク