WordPress でアイキャッチ画像を選択したあと自動的にメディアウィンドウを閉じる
そのような要求があったので知らない jQuery を調べつつ書いたコード。
テーマの functions.php に下記のコードを書く。以下 foo はテーマ名。
<?php function enqueue_override_script() { wp_enqueue_script('override', '/wp-content/themes/foo/js/override.js', array('set-post-thumbnail'), '1.0'); } if (is_admin()) { add_action('admin_init', 'enqueue_override_script'); }
下記の内容で wp-content/themes/foo/js/override.js を作る
var WPSetAsThumbnail = (function() { var original_WPSetAsThumbnail = WPSetAsThumbnail; return function(id, nonce) { var $link = jQuery('a#wp-post-thumbnail-' + id); var win = window.dialogArguments || opener || parent || top; win.WPSetThumbnailHTML = function(html){ win.jQuery('.inside', '#postimagediv').html(html); $link.queue(function(){ win.jQuery('#TB_closeWindowButton').click(); jQuery(this).dequeue(); }); }; original_WPSetAsThumbnail(id, nonce); } })();
以上。