4. 4. 1 投稿作成(簡易版)(1)全般

画面表示のカスタマイズ, パラメータ埋め込みと継承

画面表示のカスタマイズ

 一般ユーザーが使いやすいように投稿作成画面の表示をカスタマイズします。
1.“投稿の編集”右の“新規追加”
 これをクリックすると通常の新規追加画面になります。このリンクにパラメータを追加するフックがないためスタイルシートで非表示にします。
2.パーマリンク
 一般ユーザーがパーマリンクを変更する必要はないので非表示。フックがないためスタイルシートで非表示にします。
3.画像クリック時のメニュー
 一般ユーザーが操作しやすいメニューとは思えないので非表示。JavaScript でメニューを表示しています。フックがないためスタイルシートで非表示にします。
4.保存時の spinner 背景画像
 保存時に spinner 画像が現れます。この画像は背景画像で、アクセシビリティー上不適切です。別途、通常画像として現れるようにしています。フックがないためスタイルシートで削除します。

 表示するページが post.php の場合に、スタイルをヘッダーに書き出します。

コード

// --------------------------------
// タイトル右の新規追加 非表示
// パーマリンク 非表示
// JavaScript 画像クリック時のメニュー 非表示
// spinner 背景画像削除
// --------------------------------
function hk_easy_post_add_css() {
    if ( ! isset( $_REQUEST['hk_light_type'] ) )        return;
    global $pagenow;
    if ( $pagenow != 'post.php' )                       return;
    echo '<style type="text/css">'."\n";
    // タイトル右の新規追加 非表示
    echo '    .page-title-action { display: none !important; }'."\n";
    // パーマリンク 非表示
    echo '    #edit-slug-box { display: none !important; }'."\n";
    // JavaScript 画像クリック時のメニュー 非表示
    echo '    .mce-inline-toolbar-grp { display: none !important; }'."\n";
    //   spinner 背景画像削除
    echo '    .spinner { background: none !important; }'."\n";
    echo '</style>'."\n";
    return;
}
add_action( 'admin_head', 'hk_easy_post_add_css' );

パラメータ埋め込みと継承

 簡易版のパラメーターを投稿作成画面に埋め込みます。
 保存時のリダイレクトでパラメータが引き継がれないため、パラメータを付加しています。

コード

// --------------------------------
// パラメータ埋め込み
// --------------------------------
function hk_easy_post_edit_form_after_editor() {
    if ( ! isset( $_REQUEST['hk_light_type'] ) )        return;
    echo '<input type="hidden" name="hk_light_type" value="'.$_REQUEST['hk_light_type'].'" />'."\n";
    if ( isset( $_REQUEST['hk_cat_id'] ) )
        echo '<input type="hidden" name="hk_cat_id" value="'.$_REQUEST['hk_cat_id'].'" />'."\n";
    return;
}
add_action( 'edit_form_after_editor', 'hk_easy_post_edit_form_after_editor' );

// --------------------------------
// 公開・更新時のパラメータの継承
// --------------------------------
function hk_easy_post_redirect_post_location( $location ) {
    if ( ! isset( $_REQUEST['hk_light_type'] ) )        return $location;
    $location = add_query_arg( 'hk_light_type', $_REQUEST['hk_light_type'], $location );
    if ( isset( $_REQUEST['hk_cat_id'] ) )
        $location = add_query_arg( 'hk_cat_id', $_REQUEST['hk_cat_id'], $location );
    return $location;
}
add_filter( 'redirect_post_location', 'hk_easy_post_redirect_post_location' );

 このプログラムをお使いになる場合は、お使いになる方の自己責任でお願いします。

更新日:2016/03/24
掲載日:2016/01/12