0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WordPressで表示内容を投稿者が変更可能にする

Last updated at Posted at 2018-10-24
  • WordPressで投稿者が画面に表示される内容を変更可能にします
  • この記事の内容はWordPress 4.9.8での稼働を確認しています

#1. 画面を用意します

  • でBootstrapを使用した画面を用意しました

#2. コードを記入します

  • 対象のページ(例:frontpage.phpなど)に以下を記入します
投稿者が表示内容をセットする
<div class="b1">
  <?php
  if ( current_user_can('administrator') || current_user_can('editor') || current_user_can('author') ):
    $lang = "";
    $t = filter_input(INPUT_GET, "selected_lang");
    if ( $t != "" ):
      $lang = filter_input(INPUT_GET,"selected_lang");
      // set_transient( 'transient_lang', $lang, 12 * HOUR_IN_SECONDS );
      set_transient( 'transient_lang', $lang );
      // echo "transient_lang is set to ";
      // echo $lang;
    else:
      // echo "transient_lang was not set in this pass";
    endif;
    $selection_html = '';
    $selection_html .= '
      <form method="get">
        <select name="selected_lang">
          <option value="日本語">日本語</option>
          <option value="English">English</option>
          <option value="Francais">Francais</option>
        </select>
        <input type="submit" value="doit">
      </form>';
    echo $selection_html;
  endif; 
  ?>
</div>
上記の選択に従い表示される画面
<div class="b2">
  <?php
  $t2 = get_transient( 'transient_lang' );
  if ( $t2 != "" ):
    $lang2 = get_transient( 'transient_lang' );
    // echo "transient_lang was received as ";
    // echo $lang2;
  else:
    // echo "transient_lang was not received in this pass";
  endif;
  echo $lang2 . "での挨拶:";
  if ($lang2 == "日本語"): ?>
    <p>こんにちは!</p>
  <?php elseif ($lang2 == "English"): ?>
    <p>Hello!</p>
  <?php elseif ($lang2 == "Francais"): ?>
    <p>Bonjour!</p>
  <?php endif; ?>
</div>

#3. 表示を確認します

  • 期待通りに表示されることを確認します
  • 投稿者でログインし、表示する言語を指定します
スクリーンショット 2018-10-25 8.42.25.png
  • 英語("English")にセットすると
スクリーンショット 2018-10-25 8.42.57.png
  • 英語での挨拶が表示されます(プルダウンメニューは初期値の「日本語」に戻って表示されています)
スクリーンショット 2018-10-25 8.43.07.png
  • 他のブラウザで「購読者(Subscriber)」でログインすると、投稿者がセットした情報のみが閲覧できます
スクリーンショット 2018-10-25 8.43.50.png
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?