
何故Wordpressを使いたがるのか?と、制作を依頼してくる人に聞いてみた所、次のような答えが多く返ってきました。
「知り合いに勧められたから」
「公開後に自分でページを編集したい」
「運用コストを出来る限り抑えたい」
お金を出して制作をしてもらった制作会社に、運用管理をお願いしてもいいが、細かいページ編集まで作業コストを支払って行いたくないというのも、よく理解できます。
Wordpressの様なCMSは、そもそもそうした用途の為にあるんですからね。
編集対応ができないCMSを、静的ページで作るぐらいなら、HTMLだけをサーバーに設置した方がよほど効率的だし、色々なメリットもありますからね。
というわけで、今回はそういう編集できるWebサイトをWordpressで構築できるように、固定ページを登録してみたいと思います。
複数の固定ページを作成
今回の学習シリーズでは、webデザインは基本的にやらずに、Wordpressの機能だけを学習するので、簡単に固定ページをいくつか作ってみましょう。
作成する固定ページは、次の4つほどにしたいと思います。
※思いつくままに追加してもらっても大丈夫です。
名称も正直どうでもいいんですが、ページタイトルをそのままページ切り替えのメニューリストになるようにするのがポイントです。
メニューから固定ページ - 新規登録を選択
 
クラシックエディタの編集画面が表示される
 
HTMLタグやCSSのための属性を入力したいので、テキストモードに切り替える
 
パーマリンクを書き換える
ページタイトルを入力すると、パーマリンクが表示されます。
「編集ボタン」を押して、適宜切り替えてください。
今回はよくある設定パターンとして、半角英字をセットします。
 
公開ボタンを押す
肝心の内容部分のHTMLは、今回は表示が分かる程度の簡易なモノを登録しておきます。
 
同じ手順で4ページ分登録する

画像の様に4ページ分登録できたら、ひとまず固定ページ登録は完了です。
並び順などは気にしなくても大丈夫です。
デフォルトで「Privacy Policy」というページが登録されていますが、これも使いたいと思うので、公開しておきましょう。
「sample」ページは、使わないので、削除してもらっても構いません。
トップページをRootページにセット
登録した固定ページのうち、トップページを、サイトにアクセスした時のRootページにセットします。
外観 - カスタマイズを選択
 
ホームページ設定をクリック
 
固定ページを選択して、トップを選択

このまま、画面の左上の戻るボタンで戻って次の作業に進んでください。
 
ヘッダメニューで固定ページをセット
次にやることは、登録した固定ページを、ホームページのヘッダメニューに表示したいと思います。
表示する固定ページは、Wordpressの管理画面で調整出来るようにすることで、新しく作ったページや古くなったページの出し入れがしやすくなります。
メニューをクリック
 
メニューを新規作成をクリック
 
ヘッダメニューの作成
「ヘッダメニュー」と入力して、「次」ボタンをクリック
 
項目を追加ボタンをクリック

パネルが右に増えて、次のような表示になります。
 
トップ、概要、お問合せを追加する
右側のパネルに先程登録した固定ページの一覧が表示されているので、登録をしたい項目をクリックすると、左側のメニュー一覧に追加されます。

順番を変えたい場合は、ドラッグして移動できます。
「公開」ボタンを押して完了

ボタンが「公開済み」になれば、×ボタンを押して終了してください。
 
header.phpの更新
登録したメニューを反映させるために、次のようにプログラムを更新します。
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
  <meta charset="utf-8">
  <title><?php echo get_bloginfo('name');?></title>
  <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  <link rel="icon" href="<? echo get_site_icon_url();?>" />
  <link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>"/>
  <script src="<?php echo get_template_directory_uri();?>/js/main.js"></script>
</head>
<body>
  <header>
    <a class='title-area' href='/'>
      <div class='catch gothic'><?php echo get_bloginfo('description');?></div>
      <div class='title mincho bold'>
        <img class='logo' src='<?php echo get_template_directory_uri();?>/img/logo.svg'>
      <?php echo get_bloginfo('name');?></div>
    </a>
    <nav>
      <input id='menu_toggle' type='checkbox' style='display:none;'>
      <ul>
<?php
$menus = wp_get_nav_menu_items('ヘッダメニュー');
if(!$menus){return;}
$html = '';
foreach($menus as $data){
  $html .= '<li>';
  $html .= '<a href="'. $data->url .'">';
  $html .= $data->title;
  $html .= '</a>';
  $html .= '</li>'.PHP_EOL;
}
echo $html;
?>
      </ul>
      <label for='menu_toggle'>
        <span></span>
        <span></span>
        <span></span>
      </label>
    </nav>
  </header>
  <main>
今回追加したのは、次の部分です。
<?php
$menus = wp_get_nav_menu_items('ヘッダメニュー');
if(!$menus){return;}
$html = '';
foreach($menus as $data){
  $html .= '<li>';
  $html .= '<a href="'. $data->url .'">';
  $html .= $data->title;
  $html .= '</a>';
  $html .= '</li>'.PHP_EOL;
}
echo $html;
?>
解説
wp_get_nav_menu_items('メニュー名')
上記で登録したメニュー名称で、メニュー欄が検索できます。
同じ手順でフッタにメニューを挿入したり、サイドメニューなどを追加できたりします。
表示

この状態でサイト表示してみると、上記のように表示されます。
cssで、ヘッダメニューを調整すれば、ヘッダメニューの調整はできそうですね。
ちなみに、メニューが回送表示にしたい場合は、カスタマイズの所で追加したメニューをドラッグすると、階層構造にすることができるので、それをwp_get_nav_menu_items関数で取得したデータで階層構造になっているのをHTMLに出力してあげればいいだけですね。
(ちょっと難しいケド)
固定ページのコンテンツ部分の表示
最後に、肝心のコンテンツ部分の表示をするために、functions.phpを次のように更新します。
<?php
function get_content(){
  // サイトトップページ
  if(is_front_page()){
    echo view_page();
  }
  // 固定ページ
  else if(is_page()){
    echo view_page();
  }
  // 投稿ページ
  else if(is_single()){
    echo view_page();
  }
  // 投稿一覧ページ
  else if(is_home()){
    echo view_posts();
  }
  // 検索ページ
  else if(is_search()){
    echo view_search();
  }
}
function view_page(){
  the_content();
}
function view_posts(){
  return '投稿一覧ページ';
}
function view_search(){
  return '検索ページ';
}
変更点は、次の箇所のみです。
function view_page(){
  the_content();
}

無事にコンテンツ表示もできるようになりました。
メニューのリンクをクリックして、他のページのコンテンツも表示されることを確認しておきましょう。
今回は、手順が多かったですが、以上です。
 
0 件のコメント:
コメントを投稿