twitter
WordPressデザインまとめコーディングツール
in やってみた。 - 15 10月, 2013
by との - no comments
WordPressでユーザーが自由に並べ替えができるバナーエリアを作る方法
このエントリーをはてなブックマークに追加
Bookmark this on Google Bookmarks
Pocket

WordPressでクライアントからの要望でよくあるのが、バナーや写真のスライダーなんかを

自由に並べ替えができるようにしたい。

そんな相談を受けます。

言われなければ、固定ページとカスタムフィールドを使いやすくするプラグインのadvance custom fieldを使って、上限を決めてちゃちゃっと作っちゃいます。

これは、固定ページのタイトルに

バナー管理画面

とか書いといて、画像のアップロード、リンク、代替テキスト、別タブか、画面遷移かを書いてテンプレートに


 

 

これで読み込んで、配列にして終わり。

実は配列にして取得して、表示するのがめんどくさかったの。

そこで、クライアントからの要望なので調べました。

 

 

…お母さん、見つかりました。

 

 

 

WordPressのバージョンによっては使えないのですが、3.4?あたりから導入された

カスタムメニューを使っちゃいますよ、奥さん。

 

 

調べても出て来る方法は、cssで背景に画像を敷く方法。

でも、それじゃだめなの。ナビゲーションとしては使いませんから。

 

今まで、WordPressの案件なんて、ブログ作ることはないから、(大体は、コーポレートとかアーティストのサイト。これの作り方も備忘録を兼ねていつか書きます。)いきなりフルカスタムで、テンプレート作っていきます。

男ならWordPressの機能になんか頼らねぇぜ!

って思ってましたが、辞めました。

 

 

一回覚えてしまえば、自分は最強だとしばらく錯覚するくらい便利です。

 

 

 

 

何はともあれカスタムメニューを有効化する

まず、カスタムメニューを有効にするために、自分の使ってるテーマフォルダにfunctions.phpに記入します。

なかったら作ってくださいね。

functionsですからね!最後のs重要ですよ!


 

 

pin

 

 

 

 

プラグインを用意する

本日の用意するプラグインはこちら

Nav Menu Images

http://wordpress.org/plugins/nav-menu-images

ん、なんてシンプルな名前。

なぜか、自分の環境では、最新版はメディアアップロードで不具合が起きたので、一つバージョンを下げたらうまく動きました。

自分のWordPressのバージョンは3.6.1です。

このプラグインは設定とか一切ありません。

使い方もかなりシンプル。

 

 

 

 

ナビを作る。

pic1

作成を押す。

pic2

もう一回開く。

Upload menu item imageをクリック

pic3

メディアアップロードが開くので画像をアップロード

pic4

出たー♪ヽ(*´∀`)ノ

 

 

 

 

となります。

ちなみに、このサムネイルが小さいと思ったら、以下を変更。

inc/walker.php

73行目付近


 

 


 

 

そうすると問答無用でフルサイズになるので、あとは管理画面のcssでwidthでも決めてあげれば完璧。

そして、あとぼくが変更した点は、デフォルトだとカスタムメニューはdivごと吐き出します。

邪魔です。単純なリストで吐き出して欲しいじゃないですか。

 

functions.phpに


 

 

これで余分なdivはなくなります。

それ以外にも、吐き出すタグをいろいろカスタマイズした方はwp-admin/includs/nav-menu.phpを変更することでいろいろできます。

 

 

 

 

あとは表示するだけ

用意ができたら、あとは盛り付けです。表示したいところにを書きます。

今回はメニューの名前をbannerAreaとしたので


 

 

として、記入しました。

使い方によっては、カスタムメニューの画面が使いづらかったりするので、カスタムメニューの管理画面だけCSSを適応させる場合は


 

下の図はスタイルシートでボックスの幅を変更しましたの図。ネストとか必要ないので広げました。

その他、項目の非表示などは、画面上部の表示オプションでもある程度は制御できます。

 

pic

 

 

 

 

 

以上で、ユーザーが数も並び順も変更できる、ユーザーフレンドリーなバナー管理システムとなりました。

注意点は、ユーザーが自由に数を変更できるため、数の可変に対応するようにテンプレートのHTMLを組む必要があります、これを怠るとユーザーが数を変えるたびにテンプレートのHTMLを編集する必要が出てきます。

これを応用すれば、トップページによくあるスライダーの画像なんかにも使えます。

今後の課題は、カスタムメニューはドラッグするとネスト(入れ子)にする機能がありますが、これを無効にしないとユーザーが操作した時に吐き出すタグが変わってしまいます。

んーこれどうすんだろー。解決したら追記しますね。

以上、WordPressやプラグインのコアファイルもいじることになるので、バックアップをしっかりとった上、自己責任でお願いしますね。

 

 

 

2013/11/01 1:17 追記

どうやらWP SyntaxHighlighterのせいでまたしても崩れてた。

腹がたったので、Crayon Syntax Highlighterこっちに変えました。プンプン。

 

 

 

 

このエントリーをはてなブックマークに追加
Bookmark this on Google Bookmarks
Pocket

follow us in feedly