POSTされるデータから更新日時を取り除いたらいけるかも、と思い試しに書いてみました。
remove_actionでPuSHPressを外している行のみ未検証ですが、PuSHPressのコードを見る限り
きちんと動作するはずです。
php
1// 編集画面にチェックボックスを追加
2add_action('admin_menu', function () {
3 add_meta_box('html_sneak_update', 'こっそり更新', 'html_sneak_update', 'post', 'side', 'high');
4});
5
6// 実際に表示されるHTML
7function html_sneak_update() {
8echo <<< EOM
9<div>
10<input type="hidden" name="sneak_update" value="0">
11<label><input type="checkbox" name="sneak_update" value="1">更新日時を変更しない</label>
12</div>
13EOM;
14}
15
16// sneak_updateがオンかつ公開済みの記事なら
17// 新しい更新日時を取り除く、PuSHPress::publish_postを実行させない
18add_filter('wp_insert_post_data', 'my_insert_post_data', 10, 2);
19function my_insert_post_data($data, $postarr) {
20 if (filter_input(INPUT_POST, 'sneak_update')
21 && filter_input(INPUT_POST, 'original_post_status') === 'publish') {
22 unset($data['post_modified']);
23 unset($data['post_modified_gmt']);
24 remove_action('publish_post', array('PuSHPress', 'publish_post'));
25 }
26 return $data;
27}
28
上記内容をfunctions.phpに追加すると、編集画面のサイドバーに「こっそり更新」
という項目が現れます。ここにチェックを入れて保存した場合、更新日時の変更が行われません。
結果フィードが更新されません、フィードが更新されません。
当初の期待動作としては「更新日時が変わらないのでリーダーから見て実質更新なし扱いになる」
だったのですが、どうもデータから更新日時を取り除くとフィードの更新処理自体がスキップされるようです。
もしタイトルや概要に拾われる範囲の文章に変更を加えても、それがフィードの内容に適用されるのは
次の記事の更新タイミングになります。そこもカバーするとなると他のアプローチが必要なのかもしれません。
pushpress/class-pushpress.php
https://github.com/wp-plugins/pushpress/blob/master/class-pushpress.php
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/16 08:01
2016/07/16 23:13
2016/07/22 09:27
2016/07/23 13:57
2016/08/14 22:30