さて、私が望んだよりもはるかにハックな解決策でしたが、それを機能させました...
これは、誰かが同じことをする必要がある場合に備えて、コードからそれを行うための少し単純化され抽象化された方法です(近い将来、より多くのプラグインが使用されると確信しています)。
var reload_check = false; var publish_button_click = false;
jQuery(document).ready(function($) {
add_publish_button_click = setInterval(function() {
$publish_button = jQuery('.edit-post-header__settings .editor-post-publish-button');
if ($publish_button && !publish_button_click) {
publish_button_click = true;
$publish_button.on('click', function() {
var reloader = setInterval(function() {
if (reload_check) {return;} else {reload_check = true;}
postsaving = wp.data.select('core/editor').isSavingPost();
autosaving = wp.data.select('core/editor').isAutosavingPost();
success = wp.data.select('core/editor').didPostSaveRequestSucceed();
console.log('Saving: '+postsaving+' - Autosaving: '+autosaving+' - Success: '+success);
if (postsaving || autosaving || !success) {classic_reload_check = false; return;}
clearInterval(reloader);
value = document.getElementById('metabox_input_id').value;
if (value == 'trigger_value') {
if (confirm('Page reload required. Refresh the page now?')) {
window.location.href = window.location.href+'&refreshed=1';
}
}
}, 1000);
});
}
}, 500);
});
...変更metabox_input_id
しtrigger_value
て、必要に応じて一致させるだけです。:-)
wp.data
データストアに依存するように、潜在的な解決策です