WordPressで記事の更新日を表示させる方法!いつまでも投稿日のままでいいの?

Chaca-logへようこそ

ブログを継続していく上で「リライト」ということが必要になってきます。

過去記事を読み返してみての誤字脱字などもありますが、何といっても恥ずかしい文章が目についてきます。

また、レジャーなどへ行ったときの情報提供にしてもそうですね。何かしらの情報が変わると、せっかく書いた記事の信憑性がなくなってしまいます。

読者さんのことを考えるのならば「リライト」は必須ですね。

誤字脱字などの小さな修正は良いとして、大きく記事を書き換えるとき、新しい情報に書き換えたいときなどブログの「更新日」はどうしていますか。

そのときの「更新日」はブログに表示されていますか。

過去の投稿時の日付のままではないですか。

今回少し2018年の情報に書き換えたいことがあり「更新日」について考えてみました。「投稿日」のままですと、いくら新情報でも読者さんは日付を見た時点で離れてしまいますから。

今回「Word Press」で「更新日」を表示できるように挑戦しました。僕自身忘れっぽいので「備忘録」としてブログに残したいと思います。

 

Word Pressで更新日の設定はどうすればいいのか

「Word Press 更新日」などのワードで検索してみると多くの情報が出てきます。

まずは僕自身の意向に沿っているか。そして「CSS」とか「HTML」などに疎い僕でも実施できるのか。この【2つ】が大きな問題でした。

数ある情報の中から僕が選んだものは、わいひらさん(@MrYhira)の「寝ログ」を参考にさせていただきました。

[blogcard url=”https://nelog.jp/update-level-custom”]

わいひらさんの「更新日」設定は記事の修正度合いによって「更新日を変更する・変更しない」を選べるところと、僕でもなんとかなりそうだということで参考にしました。

わいひらさんが言われる通りほんとうに「コピペ一発」なんです。

手順はいたってシンプル!

親テーマではなく子テーマの「functions.php」の最後の方にコピペしたコードを貼り付けるだけになります。

 

+ クリックするとコードが表示されます

//管理画面が開いたときに実行
add_action( ‘admin_menu’, ‘add_update_level_custom_box’ );
//更新ボタンが押されたときに実行
add_action( ‘save_post’, ‘save_custom_field_postdata’ );

//カスタムフィールドを投稿画面に追加
function add_update_level_custom_box() {
//ページ編集画面にカスタムメタボックスを追加
add_meta_box( ‘update_level’, ‘更新日の変更’, ‘html_update_level_custom_box’, ‘post’, ‘side’, ‘high’ );
}

//投稿画面に表示するフォームのHTMLソース
function html_update_level_custom_box() {
$post = isset($_GET[‘post’]) ? $_GET[‘post’] :null;
$update_level = get_post_meta( $post, ‘update_level’ );

$level = $update_level ? $update_level[0] : null;
echo ‘<div style=”padding-top: 3px; overflow: hidden;”>’;
echo ‘<div style=”width: 100px; float: left;”><input name=”update_level” type=”radio” value=”high” ‘;
if( $level==”” || $level==”high” ) echo ‘ checked=”checked”‘;
echo ‘ />更新する</div><div><input name=”update_level” type=”radio” value=”low” ‘;
if( $level==”low” ) echo ‘ checked=”checked”‘;
echo ‘/>更新しない<br /></div>’;
echo ‘<p class=”howto” style=”margin-top:1em;”>更新日時を変更するかどうかを設定します。誤字修正などで更新日を変更したくない場合は「変更しない」にチェックを入れてください。</p>’;
echo ‘</div>’;
}

//設定したカスタムフィールドの値をDBに書き込む記述
function save_custom_field_postdata( $post_id ) {
$mydata = isset($_POST[‘update_level’]) ? $_POST[‘update_level’] : null;
if( “” == get_post_meta( $post_id, ‘update_level’ )) {
/* update_levelというキーでデータが保存されていなかった場合、新しく保存 */
add_post_meta( $post_id, ‘update_level’, $mydata, true ) ;
} elseif( $mydata != get_post_meta( $post_id, ‘update_level’ )) {
/* update_levelというキーのデータと、現在のデータが不一致の場合、更新 */
update_post_meta( $post_id, ‘update_level’, $mydata ) ;
} elseif( “” == $mydata ) {
/* 現在のデータが無い場合、update_levelというキーの値を削除 */
delete_post_meta( $post_id, ‘update_level’ ) ;
}
}

//「更新」以外は更新日時を変更しない
add_filter( ‘wp_insert_post_data’, ‘my_insert_post_data’, 10, 2 );
function my_insert_post_data( $data, $postarr ){
$mydata = isset($_POST[‘update_level’]) ? $_POST[‘update_level’] : null;
if( $mydata == “low” ){
unset( $data[“post_modified”] );
unset( $data[“post_modified_gmt”] );
}
return $data;
}

 

ほんと、貼るだけで簡単なのですがここで問題が発生しました。

「functions.php」とは何?

 

Word Press の functions.php の場所はどこなんだろう

 

確かに手順は理解したのですが、コードを貼り付ける場所が分からなかったので調べました。

いつものようにダッシュボード画面から「外観」➡「テーマの編集」をクリックします。

 

 

クリックすると画面右側に「テーマのための関数(functions.php)」が現れました。ここをクリックし最後の方にコードを貼り付けて完了です。

 

 

さて、「functions.php」の場所も分かり「コピペ」してみました。

「コピペ」しても「保存ボタン」とか「更新ボタン」「変更ボタン」が表示されず、ここから先へと進めない事があると思います。

そのときは「functions.php への書き込みができないときのパーミッション属性設定の手順」を参考にしていただけるとスムーズに設定できると思います。

 

WordPressの投稿画面が変わった

どのようなことでこうなるのかなどは僕には分からないのですが、いつもの投稿画面に変化がありました。

 

いつもの見慣れた画面からこのように変わりました。

「更新日の変更」・・・すごい・・・

しかも更新日を変更するかしないかの選択ができるんです。このシステムはすごく便利だと思いませんか。ちょっとした修正などでしたら「更新しない」を選べば投稿日のままなんですね。しかも操作もとても簡単、「更新する・更新しない」にチェックを入れていつものように「公開」ボタンを押すだけです。

 

 

まとめ

実際にどのように表示されるのかは下図を見てください。

ページは違いますが同じブログからのキャプチャになります。

 

とても簡単な作業でしたが、取り入れるまでは「投稿日表示」のままでしたので少し違和感があったのですが、これで解消されました。

ですが、実はここにたどり着くまでにとても苦労したのです。

「functions.php」にコピペするだけのとても簡単な手順なんですが、コピペをできない現象に遭遇してしまい無茶苦茶困ってしまったということが起こりました。

これでは駄目だと自分自身で分かっているのですが「CSS・HTML・Java」などが皆目理解できません。このようなことをある程度分かっている方なら簡単にカスタマイズができるのでしょうが、僕は何をするのにも苦労をします。

「更新日の表示」にしても最低限の知識があれば難なく設定できるはずです。

次回は僕が何で苦労したのかを記事にしたいと思っています。おそらく「???」となるのは僕だけではないと思いますので。

 

にほんブログ村 ブログブログ ブログ初心者へ
にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です