MENU
HOME
TOP
WhiteTiger Ver 1.2.1に更新しました。確認よろしくお願いします。

WordPressで修正した記事の更新日を変更しない方法

結構みんな思ってることだけどチョット誤字脱字を見つけたら修正しますよね?

僕の場合は最初にパパっと書いて後からまとめていくという変態的な書き方しますが、普通はちょっとした修正だと更新いらないですよね?

なのでネットでサーフィン🏄してきました。

意外に結構あるもんですね。先輩方は素晴らしいです。

そいで、掘り起こしたネタ元はここです。トピック: 記事を修正した時に更新日時(modified_time)を変更せずに保存する方法はな | WordPress.org

ということで、恒例の「今更やってみたら、あら?便利だわ!!」なシリーズの一つです。

Photo by Olu Eletu on Unsplash

functions.phpの編集

ほぼ同じっていうか、、表示するボックスの文言変えただけです。(照)

/*管理画面が開いたときに発動*/
add_action( 'admin_menu', 'add_update_level_custom_box' );
/*更新ボタンが押されたときに実行*/
add_action( 'save_post', 'save_custom_field_postdata_of_time' );
 
/* カスタムフィールドを投稿画面に追加 */
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() {
    $update_level = get_post_meta( $_GET['post'], 'update_level' );
 
    echo '<div style="padding-top: 3px; overflow: hidden;">';
    echo '<div style="width: 100px; float: left;"><input name="update_level" type="radio" value="high" ';
    if( $update_level[0]=="" || $update_level[0]=="high" ) echo ' checked="checked"';
    echo ' />更新あり</div><div style="width: 100px; float: left;"><input name="update_level" type="radio" value="low" ';
    if( $update_level[0]=="low" ) echo ' checked="checked"';
    echo '/>更新なし<br /></div>';
    echo '</div>';
}
 
/* 設定したカスタムフィールドの値をDBに書き込む記述 */
function save_custom_field_postdata_of_time( $post_id ) {
    $mydata = $_POST['update_level'];
    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 = $_POST['update_level'];
    if( $mydata == "low" ){
        unset( $data["post_modified"] );
        unset( $data["post_modified_gmt"] );
    }
    return $data;
}

上記コードをfunctions.phpに追加すると以下のような更新するか否かボックスが現れます。

使い方

んで、使い方っちゅうても見たまんま、そのまんま東。

日付を更新するときは「更新する」しないときは「更新しない」だけ!!

です。

Gutenbergでも表示されてるから使えるかと思ったけど….

更新されちゃった。オワタ\(^_^)/オワタ

なんか考えんとダメかも知れませぬ。旧エディタでは大丈夫でした。

それでは皆様ご愛用ください。( ´Д`)ノ~バイバイ

スポンサーリンク

この記事をかいた人

閲覧どうもありがとうございます。当サイトキャンディースタイルとWordPressテーマのWhite Tigerというサイトを運営しています。まだまだ初心者なので、お見苦しいとこがありますがどうぞよろしく。

コメント一覧

4
  • 修正した更新日と作成日がある事もこちらで知りました^^

    色々装飾修正を覚えたので(やっと^^;)
    今は、記事を更新しないで
    過去記事を修正している最中です

    後、あえて更新をしている事をアピールする(記事を放置していないよ!)と言う
    意味を示すのに、あえて更新日を掲載する方もいるようですね・・・

    私的には、修正ばかりしそうで更新日が掲載されるのがちょっと恥ずかしい気もしています

    ご教示よろしくお願いします、ケンジ-先生!

  • まだ慣れていないうちはfunctions.phpを自分で編集するのはお勧めできませぬ。
    ということで、少しこちらで編集します。

  • おはようございます^^

    プロフィールが可愛くアレンジされていました^^

    ありがとうございました、ケンジー法王様♪

    • おはようございますです。
      正直これでいいのかなって心配でしたが、気に入っていただけたようで良かったです。

コメントを閉じる

コメントを残す

メールアドレスが公開される事はございませんが*の付いている欄は必須項目となります。
なおコメントの反映にお時間がかかる場合があります事をご了承ください。


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください