HTML,CSS,PHP,ワードプレスカスタマイズ 技術情報資料

ワードプレスのメニューをカスタマイズする方法

スポンサーリンク

ワードプレスのメニューのデザインは、ほとんどテーマに依存しますよね。

なので、カスタマイズする場面は、あまりないのかもしれません。

でも、業務のサイトを作り時には、テーマに依存しなかったり、ユーザーさんの要望があったりして、

結構メニューのカスタマイズの需要が出ることがあります。


メニューのカスタマイズ


テーマにくっついてるメニューは、基本的に触れません。いや、触れるけど、かなり苦労する。

ワードプレスのメニューは、設定されていないクラスがぶら下がっていますので、吐き出されたHTMLのソースコードを確認して、そのクラスに対して、新しい属性を設定してあげればいいわけです。


ワードプレスのメニューを貼り付ける


カスタマイズメニューのひな形は、これを使います。

<?php
$defaults = array(
‘menu’ => ”,
‘menu_class’ => ‘menu’,
‘menu_id’ => ‘{メニューのスラッグ}-{連番}’,
‘container’ => ‘div’,
‘container_class’ => ‘menu-{メニューのスラッグ}-container’,
‘container_id’ => ”,
‘fallback_cb’ => ‘wp_page_menu’,
‘before’ => ”,
‘after’ => ”,
‘link_before’ => ”,
‘link_after’ => ”,
‘echo’ => true,
‘depth’ => 0,
‘walker’ => ”,
‘theme_location’ => ”,
‘items_wrap’ => ‘<ul id="%1$s" class="%2$s">%3$s</ul>’,
);
?>
<span id="sidebarwidjet"><?php wp_nav_menu( $defaults ); ?></span>


menu:ターゲットのメニューのID か スラッグ もしくはメニュー名
menu_class:メニューを構成する ul 要素に適用するCSS クラス名
menu_id:メニューを構成する ul 要素に適用するID
container:ul をラップするタグ ( div , nav , もしくはなし(=false)
container_class:コンテナに適用されるクラス名
container_id:コンテナに適用されるID
fallback_cb:メニューが存在しない場合にコールバック関数を呼び出す
before:リンクテキストの前のテキスト
after:リンクテキストの後のテキスト
link_beforeリンクの前のテキスト
link_after:リンクの後のテキスト
echo:メニューをHTML出力する(true)か、PHPの値で返す(false)か
depth:何階層まで表示するか。0 は全階層。
walker:使用するカスタムウォーカーオブジェクト (高度すぎるのでパスwww)
theme_location:テーマの中で使われる位置。register_nav_menu()
items_wrap:
  %1$s:’menu_id’
  %2$s:’menu_class’
  %3$s:リスト項目
  初期値: &kt;ul id=”%1$s” class=”%2$s”>%3$s</ul>


ねらい目は、link_before , link_after。

リスト項目は、デフォルトでは、こんな感じで吐き出されます。
(container class=(container_class))
<ul class="menu" id=(container_id)>
<li class="・・・">
<a href="・・・" class="・・・"> ・・・ </a>
</li>
<ul class="sub-menu">
<li class="・・・">
(link_before )
<a href="・・・" class="・・・">(before) ・・・ (after)</a>
(link_after)
</li>
</ul>
</ul>


link_before , link_after を使って リンク部分を div でくくることでリンクテキスト部分のデザインをカスタマイズできます。

<?php
$defaults = array(
‘menu’ => ‘Menu 2 side’,
‘menu_class’ => ‘menu’,
‘menu_id’ => ”,
‘container’ => ”,
‘container_class’ => ”,
‘container_id’ => ”,
‘fallback_cb’ => ‘wp_page_menu’,
‘before’ => ”,
‘after’ => ”,
‘link_before’ => ‘<div class="papa">’,
‘link_after’ => ‘</div>’,
‘echo’ => true,
‘depth’ => 0,
‘walker’ => ”,
‘theme_location’ => ”,
‘items_wrap’ => ‘<ul id="%1$s" class="%2$s">%3$s</ul>’,
);
?>
<span id="sidebarwidjet"><?php wp_nav_menu( $defaults ); ?></span>


<style>
#menu-menu-2-side.menu .papa:link{
color:#2a8e84;
}
#menu-menu-2-side.menu .papa:visited{
color:#2a8e84;
}
#menu-menu-2-side.menu .papa:hover{
color:#fff;
background-color:#2a8e84;
text-decoration:none;
}
a:-webkit-any-link{
text-decoration:none;
}
#menu-menu-2-side.menu .papa:active{
color:#2a8e84;
}

#menu-menu-2-side.menu .papa{
font-size:14px;
color:#2a8e84;
margin:10px 0;
padding:14px 10px;
border:1px solid #2a8e84;
}
#menu-menu-2-side.menu .papa::before {
font-family: dashicons;
content: ‘\f345’;
}

#menu-menu-2-side ul.sub-menu .papa{
margin:5px 0;
padding:0px 10px;
border:none;
}
ul#menu-menu-2-side.menu{
list-style-type:none !important;
-webkit-padding-start: 0px;
}
#menu-menu-2-side ul.sub-menu{
list-style-type:none;
-webkit-padding-start: 20px;
}
</style>


形ができてしまえば、あとは クラスを使ってデザインをいじれるってことになりますね。




スポンサーリンク

スポンサーリンク

よく使うタグ

・float クリア
<br clear="all"><div style="clear:both;" class="clearfix"></div>
・角丸め
round-radius
border-radius:5px; -webkit-border-radius:10px; -moz-border-radius:10px;
・div box
overflow:scroll;min-width:300px;max-width:300px;min-height:300px;max-height:300px;
・TEXTAREAリサイズ
resize: vertical;
・サイトURL
home_url() // http://…
if(site_url()==home_url){
$shorturl_yuzu_path = substr(ABSPATH,0,strpos( ABSPATH, substr(site_url(),strlen(home_url()) ) ) ).’/’;
}else{
$shorturl_yuzu_path = ABSPATH.’/’;
}
// /var/…
・WP HOME URL
site_url() // http://…/wp
ABSPATH // /var/…/wp
・プラグイン(自分のDIR追加必要)
plugins_url() // http://…/plugins
WP_PLUGIN_URL // http://…/plugins
WP_PLUGIN_DIR // /var/…/plugins
・使用中のテーマ
get_template_directory_uri() // http://…/theme/xx
get_template_directory() // /var/…/theme/xx
・wp-content
content_url() // http://…/wp-content
WP_CONTENT_DIR // /var/…/wp-content
・画像URLからDIR変換
$pctdir=str_replace(content_url(), WP_CONTENT_DIR,$pcturl);
・パス名分解
$pathData = pathinfo($file);
echo $pathData["dirname"]; // /var/~
echo $pathData["filename"]; // xxx
echo $pathData["extension"]; // txt
echo $pathData["basename"]; // xxx.txt
・画像サイズ
list($width,$height) = getimagesize($url);
if(has_post_thumbnail()){
$thumbnail_id = get_post_thumbnail_id();
$thumbnail_img = wp_get_attachment_image_src( $thumbnail_id , ‘full’ );
$src = $image[0]; //url
$width = $image[1]; //横幅
$height = $image[2]; //高さ
・画像サイズ比率
list($src_w,$src_h) = getimagesize($file);
$dst_w = 600;$dst_h = 0;
$dst_h = ($dst_w!=0)?(intval(($src_h*$dst_w)/$src_w )):(($dst_h!=0)?(intval(($src_w*$dst_h)/$src_h)):0);
・疑似要素順
link visited hover active


特殊文字
シングルクォート : &#39;
ダブルクォート : &quot;
WP設定内表示前処理(htmlタグ許可項目)
$str = str_replace(‘<','&lt;' ,$str);
$str = str_replace(‘>’,’&gt;’ ,$str);
$str = str_replace(‘\”‘,’&quot;’,$str);
$str = str_replace(“\'”,’&#39;’ ,$str);
WO設定項目表示前処理(htmlタグ許可項目)
$str = str_replace(‘\”‘,'”‘,$str);
$str = str_replace(“\'”,”‘”,$str);
・テーマ
get_theme_root_uri()
get_theme_root()
・WP 情報
get_bloginfo( $show )
・Wp config FTP 情報 設置
define( ‘FTP_HOST’, ‘host’ );
define( ‘FTP_USER’, ‘id’ );
define( ‘FTP_PASS’, ‘pw’ );
define( ‘FTP_SSL’, false );
弾に使う
placeholder:ユーザー入力補助

カテゴリー

カラフルボックスなど cpanel サーバーでPerlでMySQLにアクセスできないときの対策

カラフルボックスなど cpanel サーバーでPerlでMySQLにアクセスできないときの対策 カラフルボックスでPerlでMySQLにアクセスできないときの対策カラフルボックスでPerlでMySQLにアクセスできない!エラーメッセージは、mysql のドライバーがない。こんなメッセージが返って

MW WP FORM のフックが効かない。

MW WP FORM のフックが効かない。 MW WP FORM のフックが効かない。MW WP FORM は、各種フックがあってカスタマイズが便利~とか言われているプラグインですが。。。マニュアルにはあるのにフックが効かないフックがかなりある

MW WP FORM のショートコードで出力される内容をカスタマイズする。

MW WP FORM のショートコードで出力される内容をカスタマイズする。 MW WP FORM のショートコードで出力される内容をカスタマイズしたくなりました。非表示フィールド type=”hidden” にデータをためておいて、それをメール送信する

WelCart 買い物かごのカスタマイズ、テンプレートファイルの場所

WelCart 買い物かごのカスタマイズ、テンプレートファイルの場所 WelCart 買い物かごのカスタマイズするとき、毎回テンプレートファイルを探すのでメモしておきます。WelCart 買い物かごのカスタマイズ、テンプレートファイルの場所WelCart 買い物かごのカ

WelCart で投稿ページに商品購入欄を作る

WelCart で投稿ページに商品購入欄を作る WelCart の商品ページは、ご存知んごとくウルトラダサい。これをカスタマイズしないとなんとも素人っぽさの抜けないサイトになってしまう。WelCart で投稿ページに商品購入欄を作るときのモジュール

FB 広告 最適化~グーグルアナリティクスとサーチコンソールの連動のさせかた(必要な分だけ)

FB 広告 最適化~グーグルアナリティクスとサーチコンソールの連動のさせかた(必要な分だけ) FB 広告 最適化にあたって必要になってくるツールがグーグルアナリティクスとサーチコンソール。別にグーグルのアナリティクス、サーチコンソールでなくてもアクセス解析はできるんだけど、グーグルはユーザー囲