<p class="wp-block-paragraph" style="font-size:18px">こんにちわ、サイト管理者のわかっち (<a href="https://twitter.com/wakatchi_tech">@wakatchi_tech</a>) です。</p>
<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-right vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://wakatchi.dev/wp-content/uploads/2022/07/eye_ganseihirou_computer_woman.png" alt=""/><figcaption class="vk_balloon_icon_name">質問者</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content has-background-color has-pale-cyan-blue-background-color "><span class="vk_balloon_content_before has-text-color has-pale-cyan-blue-color"></span><span class="vk_balloon_content_after "></span>
<p class="wp-block-paragraph">Lightningのモバイル固定ナビって、プログラムで動的に書き換えられないの?</p>
</div></div></div>
<p class="wp-block-paragraph" style="font-size:18px">WordPressのデザインテーマであるLightningは、有料版(Lightning G3 Pro Pack)を使うとモバイル固定ナビが利用できます。モバイル固定ナビは、スマホや横幅の狭いPCブラウザで画面下部に表示されます。</p>
<p class="wp-block-paragraph" style="font-size:18px">このモバイル固定ナビはとても便利ですが、ログインユーザごとに表示内容を変えたり、クリック時のURLを変更することができません。</p>
<p class="wp-block-paragraph" style="font-size:18px">この記事では、 ログインユーザなどの情報に応じて、モバイル固定ナビを動的に書き換える方法をご紹介します。</p>
<div class="wp-block-vk-blocks-border-box vk_borderBox vk_borderBox-background-transparent has-text-color has-pale-cyan-blue-color is-style-vk_borderBox-style-solid-kado-tit-tab"><div class="vk_borderBox_title_container has-background has-pale-cyan-blue-background-color"><i class=""></i><h4 class="vk_borderBox_title" id="vk-border-box-88562630-6fc9-4b59-88fb-e1a445cfea95"><strong>この記事は次のような方にお勧めです</strong></h4></div><div class="vk_borderBox_body">
<ul class="wp-block-list">
<li>有料版Lightningテーマを扱うWordPressのサイト開発者</li>
<li>スマホに表示されるモバイル固定ナビを動的に変えたい人</li>
</ul>
</div></div>
<p class="wp-block-paragraph" style="font-size:18px">なお、LightningはVektor社の製品です。詳細はこちらをご覧ください。</p>
<div class="wp-block-vk-blocks-blog-card has-border-color is-layout-flow wp-block-vk-blocks-blog-card-is-layout-flow" style="border-color:#0000001f;border-width:1px;border-radius:5px;padding-top:1.5rem;padding-right:1.5rem;padding-bottom:1.5rem;padding-left:1.5rem">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-e37897db wp-block-columns-is-layout-flex">
<div class="wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.3%"><figure class="wp-block-vk-blocks-blog-card-featured-image"><a href="https://vws.vektor-inc.co.jp/?vwaf=1348" target="_self" ><img src='https://vws.vektor-inc.co.jp/wp-content/uploads/2025/06/vws_ogp-01-1024x538.png' class="has-border-color" style="border-color:#0000001f;border-radius:5px;border-width:1px;object-fit:cover;" /></a></figure></div>
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.6%"><h5 class="wp-block-vk-blocks-blog-card-title"><a href="https://vws.vektor-inc.co.jp/?vwaf=1348" target="_self" >Vektor Web Solutions | 株式会社ベクトル開発のWordPressテーマ・プラグイン・ライセンス販売サイト VWS</a></h5>
<div class="wp-block-vk-blocks-blog-card-excerpt"><p class="wp-block-vk-blocks-blog-card-excerpt__excerpt">人気国産テーマLightningのプロ機能や機能拡張プラグインVK Blocks Proなど、WordPressウェブ制作向けオールインワンライセンスの販売サイト</p></div>
<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-17ef6164 wp-block-group-is-layout-flex"><figure class="wp-block-vk-blocks-blog-card-site-logo wp-container-content-b8e8afd0"><a href="https://vws.vektor-inc.co.jp" target="_self" ><img src='https://vws.vektor-inc.co.jp/wp-content/uploads/2020/03/cropped-site-icon2020-32x32.png' /></a></figure>
<p class="wp-block-vk-blocks-blog-card-site-title"><a href="https://vws.vektor-inc.co.jp" target="_self" >Vektor Web Solutions</a></p></div>
</div>
</div>
</div>
<div class="wp-block-vk-blocks-table-of-contents-new vk_tableOfContents vk_tableOfContents-style-default tabs" data-use-custom-levels="false" data-custom-levels=""><div class="tab"><div class="vk_tableOfContents_title">目次</div><input type="checkbox" id="chck-toc-dltqpe4y"/><label class="tab-label vk_tableOfContents_openCloseBtn button_status button_status-open" for="chck-toc-dltqpe4y" id="vk-tab-label-toc-dltqpe4y">CLOSE</label><ul class="vk_tableOfContents_list tab_content-open">
<li class="vk_tableOfContents_list_item vk_tableOfContents_list_item-h-2">
<a href="#vk-htags-8174cec2-c9b5-40e8-b3e5-a80756e39703" class="vk_tableOfContents_list_item_link">
<span class="vk_tableOfContents_list_item_link_preNumber">1. </span>
vk_mobil_fix_nav_optionsフィルタで書き換える
</a>
</li>
<li class="vk_tableOfContents_list_item vk_tableOfContents_list_item-h-3">
<a href="#vk-htags-8b607cdf-dcf5-41a1-9394-74c4fd4c2af9" class="vk_tableOfContents_list_item_link">
<span class="vk_tableOfContents_list_item_link_preNumber">1.1. </span>
引数$optionsの構造
</a>
</li>
<li class="vk_tableOfContents_list_item vk_tableOfContents_list_item-h-2">
<a href="#vk-htags-b08d37df-e694-41e6-872c-d5251a2c21a7" class="vk_tableOfContents_list_item_link">
<span class="vk_tableOfContents_list_item_link_preNumber">2. </span>
権限ごとにモバイル固定ナビのURLを変更する例
</a>
</li>
<li class="vk_tableOfContents_list_item vk_tableOfContents_list_item-h-2">
<a href="#vk-htags-cc246710-c5e8-40dd-8509-7f1bb7556f77" class="vk_tableOfContents_list_item_link">
<span class="vk_tableOfContents_list_item_link_preNumber">3. </span>
まとめ
</a>
</li>
</ul></div></div>
<h2 class="wp-block-heading" id="vk-htags-8174cec2-c9b5-40e8-b3e5-a80756e39703">vk_mobil_fix_nav_optionsフィルタで書き換える</h2>
<p class="wp-block-paragraph">モバイル固定ナビは、フィルターフック<span data-color="#abb8c3" style="background: linear-gradient(transparent 60%,rgba(171, 184, 195, 0.7) 0);" class="vk_highlighter"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color"><strong>vk_mobil_fix_nav_options</strong></mark></span>の引数を書き換えることで変更できます。</p>
<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>add_filter(
'vk_mobil_fix_nav_options',
function( $options ){
return $options ;
}
)</code></pre></div>
<p class="wp-block-paragraph"></p>
<h3 class="wp-block-heading" id="vk-htags-8b607cdf-dcf5-41a1-9394-74c4fd4c2af9">引数<code>$options</code>の構造</h3>
<p class="wp-block-paragraph">モバイル固定ナビの引数 $options は、文字列やBooleanなどで構成される1次元のArray構造です。</p>
<p class="wp-block-paragraph">渡された$optionsの値を書き換えることで、モバイル固定ナビの表示を動的に書き換えることができます。</p>
<p class="wp-block-paragraph">link_icon_1やlink_url_1の数字の部分は固定ナビボタンの番号です。デフォルトは4つですが、<code>vk_mobil_fix_nav_menu_number</code>フィルタを使うことで、最大5つまで固定ナビボタンを設定できます。</p>
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">string(9) "ホーム" ["link_icon_1"]=> string(11) "fas fa-home" ["link_url_1"]=> string(1) "/" ["link_blank_1"]=> bool(false) ["link_text_2"]=> string(15) "マイページ" ["link_icon_2"]=> string(17) "fas fa-house-user" ["link_url_2"]=> string(7) "/mypage" ["link_blank_2"]=> bool(false) ["link_text_3"]=> string(12) "チャット" ["link_icon_3"]=> string(14) "fa fa-comments" ["link_url_3"]=> string(27) "/mypage?profiletab=messages" ["link_blank_3"]=> </p>
</blockquote>
<div style="height:38px" aria-hidden="true" class="wp-block-spacer"></div>
<p class="wp-block-paragraph">以下の表は、<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color"><span data-color="#abb8c3" style="background: linear-gradient(transparent 60%,rgba(171, 184, 195, 0.7) 0);" class="vk_highlighter"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color"><strong>vk_mobil_fix_nav_options</strong></mark></span></mark>フィルタで渡される$optionsの構造です。</p>
<p class="wp-block-paragraph">よく見ると、Lightningのモバイル固定ナビ設定画面で設定できるものと全く同じです。このへんの値を開発者が書き換えられるのは、ありがたいですね。</p>
<div style="height:38px" aria-hidden="true" class="wp-block-spacer"></div>
<figure class="wp-block-table aligncenter is-style-stripes"><table><thead><tr><th>オプション</th><th>オプションの意味</th><th>例</th></tr></thead><tbody><tr><td>link_text_x</td><td>モバイル固定ナビで表示する文字列。</td><td>マイページ</td></tr><tr><td>link_icon_x</td><td>Font Awesome アイコンフォント。<br><a href="https://fontawesome.com/icons?d=gallery&m=free" data-type="link" data-id="https://fontawesome.com/icons?d=gallery&m=free">アイコンリスト</a>から選択する</td><td>fas fa-house-user</td></tr><tr><td>link_url_x</td><td>クリックした際のURL</td><td>/mypage</td></tr><tr><td>link_blank_x</td><td>リンク先を別ウィンドウで開くかどうか</td><td>false</td></tr><tr><td>event_x</td><td>クリックイベント</td><td><em>ga('send)</em></td></tr><tr><td>ling_text_0</td><td>リンクテキスト。<br>オプション'add_menu_btn'が有効の時に表示される</td><td>MENU</td></tr><tr><td>hidden</td><td>モバイル固定ナビを表示するかどうか</td><td>true</td></tr><tr><td>widget_padding</td><td>ウィジェットエリアに余白を追加する</td><td>false</td></tr><tr><td>add_menu_btn</td><td>最初のメニューに開閉ボタンを追加する</td><td>false</td></tr><tr><td>color</td><td>モバイル固定ナビの文字色</td><td>#2E6DA4</td></tr><tr><td>nav_bg_color</td><td>モバイル固定ナビの背景色</td><td>#FFF</td></tr><tr><td>current_color</td><td>(確認中)</td><td>#16354F</td></tr></tbody></table><figcaption class="wp-element-caption"><code>$options</code>の構造(xは固定ナビボタンの数値)</figcaption></figure>
<h2 class="wp-block-heading" id="vk-htags-b08d37df-e694-41e6-872c-d5251a2c21a7">権限ごとにモバイル固定ナビのURLを変更する例</h2>
<p class="wp-block-paragraph">会員サイトでは、無料会員や有料会員ごとにモバイル固定ナビを変えたいことがよくあります。</p>
<p class="wp-block-paragraph">以下は、権限(無料会員、有料会員)をもとに、4つ目の固定ナビボタンのURLを変更する例です。</p>
<p class="wp-block-paragraph">ログインユーザの役割を取得した後、権限に応じてURLを変更しています。この例では、<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color"><span data-color="#abb8c3" style="background: linear-gradient(transparent 60%,rgba(171, 184, 195, 0.7) 0);" class="vk_highlighter"><strong>is_user_logged_in</strong></span></mark>関数でログインチェックをしているため、ログインしていないと4つ目のモバイル固定ナビは表示されません。</p>
<p class="wp-block-paragraph">なお、このサンプルの関数内は擬似コードですので、そのままコピーしても動作しない点にご留意ください。</p>
<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>add_filter(
'vk_mobil_fix_nav_options',
function( $options ){
// 権限毎に表示するURLを変更する例
// 無料会員と有料会員の表示ページは、
// 何らかのプラグインで参照権限の設定がされているのが望ましい
if( is_user_logged_in() ) {
// 役割(権限の取得)の取得
role = Role::byID( get_current_user_id() ) ;
$options['link_text_4'] = '検索';
$options['link_icon_4'] = 'fas fa-magnifying-glass';
if( Role::$FREE->equals($role) ) {
$options['link_url_4'] = '/free-search/';
} elseif ( Role::$PAID->equals($role) ){
$options['link_url_4'] = '/paid-search';
} else {
// do nothing...
}
}
return $options ;
}
)</code></pre></div>
<p class="wp-block-paragraph"></p>
<h2 class="wp-block-heading" id="vk-htags-cc246710-c5e8-40dd-8509-7f1bb7556f77">まとめ</h2>
<p class="wp-block-paragraph">今回は、有料版(Lightning G3 Pro Pack)で利用できるモバイル固定ナビを動的に変更する方法をご紹介しました。</p>
<p class="wp-block-paragraph">Lightningで会員サイトやマッチングサイトを作っていると、会員のグレードや権限ごとにナビゲーションメニューは変えられるけど、モバイル固定ナビは変えられないの?とよく聞かれます。</p>
<p class="wp-block-paragraph">Lightningのカスタマイズ方法は比較的情報が発信されているほうですが、実際のコードを見てみると、まだまだ便利なアクションフックやフィルターフックが数多くあります。</p>
<p class="wp-block-paragraph">引き続き、Lightningの便利な小ネタを発信していきます。</p>
<p class="wp-block-paragraph">本記事が少しでもお役に立てれば幸いです。</p>
<p class="wp-block-paragraph">最後までお読みいただき、ありがとうございました!</p>
<div class="wp-block-vk-blocks-balloon vk_balloon vk_balloon-position-left vk_balloon-type-speech vk_balloon-animation-none"><div class="vk_balloon_icon"><figure><img class="vk_balloon_icon_image vk_balloon_icon_image-type-normal " src="https://wakatchi.dev/wp-content/uploads/2022/07/wakatchi_icon_2.jpg" alt=""/><figcaption class="vk_balloon_icon_name">わかっち</figcaption></figure></div><div class="vk_balloon_content_outer"><div class="vk_balloon_content has-background-color has-luminous-vivid-amber-background-color "><span class="vk_balloon_content_before has-text-color has-luminous-vivid-amber-color"></span><span class="vk_balloon_content_after "></span>
<p class="wp-block-paragraph">有料版(Lightning G3 Pro Pack)を含むVektor Passportをご紹介します。よろしければどうぞ</p>
</div></div></div>
<a href="https://vws.vektor-inc.co.jp/product/vektor-passport-3y/?vwaf=1348"><img src="https://vws.vektor-inc.co.jp/wp-content/uploads/2022/11/vk-passport-bnr-3y-vk.png" alt="Vektor Passport(ライセンス期間3年)" width="600" height="600"></a>
こんにちわ、サイト管理者のわかっち (@wakatchi_tech) です。
質問者
Lightningのモバイル固定ナビって、プログラムで動的に書き換えられないの?
WordPressのデザインテーマであるLightningは、有料版(Lightning G3 Pro Pack)を使うとモバイル固定ナビが利用できます。モバイル固定ナビは、スマホや横幅の狭いPCブラウザで画面下部に表示されます。
このモバイル固定ナビはとても便利ですが、ログインユーザごとに表示内容を変えたり、クリック時のURLを変更することができません。
この記事では、 ログインユーザなどの情報に応じて、モバイル固定ナビを動的に書き換える方法をご紹介します。
この記事は次のような方にお勧めです
- 有料版Lightningテーマを扱うWordPressのサイト開発者
- スマホに表示されるモバイル固定ナビを動的に変えたい人
なお、LightningはVektor社の製品です。詳細はこちらをご覧ください。
人気国産テーマLightningのプロ機能や機能拡張プラグインVK Blocks Proなど、WordPressウェブ制作向けオールインワンライセンスの販売サイト
モバイル固定ナビは、フィルターフックvk_mobil_fix_nav_optionsの引数を書き換えることで変更できます。
add_filter(
'vk_mobil_fix_nav_options',
function( $options ){
return $options ;
}
)
モバイル固定ナビの引数 $options は、文字列やBooleanなどで構成される1次元のArray構造です。
渡された$optionsの値を書き換えることで、モバイル固定ナビの表示を動的に書き換えることができます。
link_icon_1やlink_url_1の数字の部分は固定ナビボタンの番号です。デフォルトは4つですが、vk_mobil_fix_nav_menu_numberフィルタを使うことで、最大5つまで固定ナビボタンを設定できます。
string(9) "ホーム" ["link_icon_1"]=> string(11) "fas fa-home" ["link_url_1"]=> string(1) "/" ["link_blank_1"]=> bool(false) ["link_text_2"]=> string(15) "マイページ" ["link_icon_2"]=> string(17) "fas fa-house-user" ["link_url_2"]=> string(7) "/mypage" ["link_blank_2"]=> bool(false) ["link_text_3"]=> string(12) "チャット" ["link_icon_3"]=> string(14) "fa fa-comments" ["link_url_3"]=> string(27) "/mypage?profiletab=messages" ["link_blank_3"]=>
以下の表は、vk_mobil_fix_nav_optionsフィルタで渡される$optionsの構造です。
よく見ると、Lightningのモバイル固定ナビ設定画面で設定できるものと全く同じです。このへんの値を開発者が書き換えられるのは、ありがたいですね。
| オプション | オプションの意味 | 例 |
|---|
| link_text_x | モバイル固定ナビで表示する文字列。 | マイページ |
| link_icon_x | Font Awesome アイコンフォント。 アイコンリストから選択する | fas fa-house-user |
| link_url_x | クリックした際のURL | /mypage |
| link_blank_x | リンク先を別ウィンドウで開くかどうか | false |
| event_x | クリックイベント | ga('send) |
| ling_text_0 | リンクテキスト。 オプション'add_menu_btn'が有効の時に表示される | MENU |
| hidden | モバイル固定ナビを表示するかどうか | true |
| widget_padding | ウィジェットエリアに余白を追加する | false |
| add_menu_btn | 最初のメニューに開閉ボタンを追加する | false |
| color | モバイル固定ナビの文字色 | #2E6DA4 |
| nav_bg_color | モバイル固定ナビの背景色 | #FFF |
| current_color | (確認中) | #16354F |
$optionsの構造(xは固定ナビボタンの数値)
会員サイトでは、無料会員や有料会員ごとにモバイル固定ナビを変えたいことがよくあります。
以下は、権限(無料会員、有料会員)をもとに、4つ目の固定ナビボタンのURLを変更する例です。
ログインユーザの役割を取得した後、権限に応じてURLを変更しています。この例では、is_user_logged_in関数でログインチェックをしているため、ログインしていないと4つ目のモバイル固定ナビは表示されません。
なお、このサンプルの関数内は擬似コードですので、そのままコピーしても動作しない点にご留意ください。
add_filter(
'vk_mobil_fix_nav_options',
function( $options ){
// 権限毎に表示するURLを変更する例
// 無料会員と有料会員の表示ページは、
// 何らかのプラグインで参照権限の設定がされているのが望ましい
if( is_user_logged_in() ) {
// 役割(権限の取得)の取得
role = Role::byID( get_current_user_id() ) ;
$options['link_text_4'] = '検索';
$options['link_icon_4'] = 'fas fa-magnifying-glass';
if( Role::$FREE->equals($role) ) {
$options['link_url_4'] = '/free-search/';
} elseif ( Role::$PAID->equals($role) ){
$options['link_url_4'] = '/paid-search';
} else {
// do nothing...
}
}
return $options ;
}
)
今回は、有料版(Lightning G3 Pro Pack)で利用できるモバイル固定ナビを動的に変更する方法をご紹介しました。
Lightningで会員サイトやマッチングサイトを作っていると、会員のグレードや権限ごとにナビゲーションメニューは変えられるけど、モバイル固定ナビは変えられないの?とよく聞かれます。
Lightningのカスタマイズ方法は比較的情報が発信されているほうですが、実際のコードを見てみると、まだまだ便利なアクションフックやフィルターフックが数多くあります。
引き続き、Lightningの便利な小ネタを発信していきます。
本記事が少しでもお役に立てれば幸いです。
最後までお読みいただき、ありがとうございました!
わかっち
有料版(Lightning G3 Pro Pack)を含むVektor Passportをご紹介します。よろしければどうぞ