WordPress】記事を書くのが楽しくなるプラグインActive Preview
2013年02月10日 00時05分
wordpressの投稿で一番めんどくさいのって記事を編集するたびにプレビューボタンを押して変更を確認するという作業ですよね。
その作業を劇的に改善してくれるのがActive Previewプラグインです。
Active Preview
WordPress.org Active Preview
これを使うとまるでDreamWeaverやCoda2のプレビューウィンドウを使っている感覚でリアルタイムで変更がプレビューされるようになります。
使用イメージ動画
このプラグインを入れたら記事を書くのが楽しくなりました。
プラグインページには最後の更新から2年以上経っているとアラートが表示されていますがそんなことは気にしないでお勧めできます。
さて、導入の際にそのままでは動かなかったので多少手を加えた時のメモをしておきます。
管理画面をSSLで使用している場合そのまま導入しても動きませんでしたので以下の修正を行いました。(v3.5.1)
プレビューのURLが通常のHTTPだとJavaScriptが子ウィンドウ内のdocumentにアクセス出来ないのでプレビューも管理画面のプロトコルと合わせるように修正。
コアファイルの修正だからバージョンアップする度に修正がいるなぁ、プラグイン側でどうにかしたい所です。
wp-admin/includes/post.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
function post_preview() { $post_ID = (int) $_POST['post_ID']; $status = get_post_status( $post_ID ); if ( 'auto-draft' == $status ) wp_die( __('Preview not available. Please save as a draft first.') ); if ( isset($_POST['catslist']) ) $_POST['post_category'] = explode(",", $_POST['catslist']); if ( isset($_POST['tags_input']) ) $_POST['tags_input'] = explode(",", $_POST['tags_input']); if ( $_POST['post_type'] == 'page' || empty($_POST['post_category']) ) unset($_POST['post_category']); $_POST['ID'] = $post_ID; $post = get_post($post_ID); if ( 'page' == $post->post_type ) { if ( !current_user_can('edit_page', $post_ID) ) wp_die(__('You are not allowed to edit this page.')); } else { if ( !current_user_can('edit_post', $post_ID) ) wp_die(__('You are not allowed to edit this post.')); } if ( 'draft' == $post->post_status ) { $id = edit_post(); } else { // Non drafts are not overwritten. The autosave is stored in a special post revision. $id = wp_create_post_autosave( $post->ID ); if ( ! is_wp_error($id) ) $id = $post->ID; } if ( is_wp_error($id) ) wp_die( $id->get_error_message() ); if ( $_POST['post_status'] == 'draft' ) { $url = add_query_arg( 'preview', 'true', get_permalink($id) ); } else { $nonce = wp_create_nonce('post_preview_' . $id); $url = add_query_arg( array( 'preview' => 'true', 'preview_id' => $id, 'preview_nonce' => $nonce ), get_permalink($id) ); } + if (is_ssl()) { + $url = preg_replace('/^http:/', 'https:', $url); + } return $url; } |
管理画面内で出力されるscriptタグのsrcが非SSLなのでブラウザによってはjavascriptが動きません。
プラグインをインストールしたのにお使いのブラウザでActive Previewというボタンが表示されない場合はこちらを疑ってください。
その場合は以下を修正。
wp-content/plugins/active-preview/active-preview.php
1 2 3 4 5 6 7 8 |
function activepreviewinit() { - wp_enqueue_script('activepreview', - WP_PLUGIN_URL . '/active-preview/active-preview.js', - array('jquery')); + wp_enqueue_script('activepreview', + plugin_dir_url('active-preview') . '/active-preview/active-preview.js', + array('jquery')); } |
それでは、Active Previewで素晴らしいWordPressライフを!