ショウジンブログ on Hatena

“お芝居をしないと、この社会では異邦人として扱われるほかない”

投稿の編集画面へのリンクを設定する@WordPress

WordPressサイトにログインしている状態で投稿の一覧から特定の投稿の編集画面へすぐに進みたい時に使えるTipsです。

投稿や固定ページそのものであれば、それをブラウザで表示している時にアドミンバー(ログイン中にWordPressサイトを開いていると上部に出る、黒い背景のあのバーですね)から編集画面には進めますが、この例では投稿一覧を固定ページでループ表示していて、その中から特定の投稿の編集画面に進めるようにする必要がありました。

管理者(もしくは運用担当)がWordPressサイトにログインしている状態で、このスケジュールページに行くと、セッション名にリンクが張られていて、これをクリックするとその編集画面に進めるようにする例です。

f:id:showjinx:20160505123701p:plain

右が非ログイン状態(一般の方が見ている状態)、左がWordPressサイトにログインしている状態です。

実施日や時間等、内容を変更する必要のある投稿があったら、そのセッション名(投稿タイトル)をクリックすれば、このようにすぐにその編集画面に進むことが出来ます。

f:id:showjinx:20160505123902p:plain

とくにこの実装例では投稿詳細ページが存在せず(single.phpで表示する必要がない)、また投稿タイトルが同一なので管理画面(の投稿一覧)から編集したい投稿を探すのが困難なので(名称がどれも同じなので)このような対応をすることになりました。

実際のコードです。

<?php
    $id = get_the_ID(); /* 投稿IDを取得 */
    global $current_user;
    get_currentuserinfo();
    $user = $current_user->user_level; /* ログインしているユーザーの権限レベルを取得 */
    if($user >= 7){ /* 編集者グループ以上に属するユーザにのみ出力 */
        echo '<a href="';
        echo home_url('/_wp/wp-admin/post.php?post=');
        echo $id . '&action=edit">';
        the_title();
        echo '</a>';
    }else{
        the_title();
    };
?>

記述しているのは固定ページのループ内です。(セッションスケジュール一覧を表示するために作った独自の固定ページ)

get_the_ID()で投稿IDを取得。ログインしているユーザーの属する権限グループを取得し、この例では編集者グループ以上(ユーザーレベル7以上)を指定して、投稿タイトルに編集画面へのリンクが出力されるようにしています。