参照
VSCodeのインテリセンスにプラグイン関数を認識させる方法
VSCodeでWordPressテーマ制作をする際、プラグイン固有の関数が構文エラーとして表示される問題を解決する方法をご紹介。インテリセンスに関数を認識させるテクニックを設定手順から注意点まで詳しく解説します。
前回、ナビゲーションメニューの実装を完了し、各ページへのスムーズな移動が可能になりました。
今回は、ヘッダーにソーシャルメディアのリンクを実装します。SNS情報を管理画面で一元管理し、それをテーマ側で取得して表示する方法を学びます。
目次
SNSの情報を管理する方法はいくつかあります。
今回は、固定ページにカスタムフィールドを追加する方法を採用します。
それぞれの方法について、メリット・デメリットを確認しましょう。
WordPressの標準機能「カスタマイザー」(外観 → カスタマイズ)を使って管理する方法です。
WordPressの管理画面に独自のオプションページを作成する方法です。
「ACF Extended」などのプラグインを使ってオプションページを作成する方法です。
固定ページを用意し、そこにカスタムフィールドを追加する方法です。
今回はSNS情報を管理するためにオプションページを用意しますが、今後、店舗の住所や連絡先、営業時間など、全ページ共通の情報を管理する必要があります。
固定ページを使った方法であれば、これらすべての共通情報を1つのページで簡単に管理できます。
費用をかけずに効率的にオプションページを作成できるため、今回はこの方法を採用します。
まず、共通情報を管理するための固定ページを作成します。
現時点ではあえて「公開」としています。SCFのバグにより「非公開」のページに項目を追加できないため、SCF設定後に「非公開」に変更します。
SNS情報の管理方法として、以下の2つのアプローチが考えられます。
今回は後者を採用します。これにより、将来的に新しいSNSを追加する際も柔軟に対応できます。
管理する項目は以下の3つです。
以下の3つのサブフィールドを追加します。
| タイプ | ラベル | 名前 |
|---|---|---|
| テキスト | SNS名 | opt_sns_name |
| テキスト | SNSアイコン | opt_sns_icon |
| テキスト | SNS URL | opt_sns_url |
これで、共通情報ページにSNS情報を管理する項目が設定できました。
以下のようにSNS情報を登録します。
| SNS名 | SNSアイコン | SNS URL |
|---|---|---|
<i class="fa-brands fa-facebook-f"></i> | https://www.facebook.com/xxxx | |
| X | <i class="fa-brands fa-x-twitter"></i> | https://x.com/xxxx |
<i class="fa-brands fa-instagram"></i> | https://www.instagram.com/xxxx |
xxxxはご自身のアカウントに合わせて変更してください。SCFの設定と情報の登録が完了したら、固定ページ「共通情報」を「非公開」に変更します。これにより、ネットに公開されず、内部的にのみ参照できるようになります。
それでは、登録したSNS情報をヘッダーに表示するコードを作成します。
header.phpに以下のコードを追加します。
<?php
$page = get_page_by_path('config');
$page_id = $page->ID;
$sns_list = SCF::get('opt_sns_list', $page_id);
foreach($sns_list as $sns_item) :
?>
<li>
<a class="link sns-icon" href="<?php echo $sns_item['opt_sns_url']; ?>" target="_blank" rel="noopener noreferrer" title="<?php echo $sns_item['opt_sns_name']; ?>">
<?php echo $sns_item['opt_sns_icon']; ?><?php echo $sns_item['opt_sns_name']; ?>
</a>
</li>
<?php
endforeach;
?>PHP$page = get_page_by_path('config');
$page_id = $page->ID;PHPget_page_by_path()を使って、スラッグ「config」の固定ページを取得し、そのIDを取得します。
$sns_list = SCF::get('opt_sns_list', $page_id);PHPSCF::get()を使って、指定したページIDから「opt_sns_list」フィールドのデータを取得します。取得されるデータは配列形式です。
foreach($sns_list as $sns_item) :PHP取得したSNS情報を1つずつ処理します。各SNS項目($sns_item)は連想配列で、以下のキーでアクセスできます。
$sns_item['opt_sns_name']: SNS名$sns_item['opt_sns_icon']: SNSアイコン$sns_item['opt_sns_url']: SNS URL<a class="link sns-icon" href="<?php echo $sns_item['opt_sns_url']; ?>" target="_blank" rel="noopener noreferrer" title="<?php echo $sns_item['opt_sns_name']; ?>">
<?php echo $sns_item['opt_sns_icon']; ?><?php echo $sns_item['opt_sns_name']; ?>
</a>PHP各SNSのリンクを出力します。
target="_blank": 新しいタブで開くrel="noopener noreferrer": セキュリティ対策title: ツールチップに表示するSNS名ブラウザでサイトを開き、ヘッダーを確認してください。
今回の目的は、サイト全体で共通する情報をオプションページで一元管理できる仕組みを作ることでした。
具体例としてSNS情報を取り上げましたが、この仕組みは店舗の住所、電話番号、営業時間など、あらゆる共通情報の管理に応用できます。
固定ページとSCFプラグインを使うことで、以下を実現しました。
この仕組みにより、サイトの保守性が大幅に向上し、非技術者でも情報を更新できる環境が整いました。
次回は、WordPressテーマでの外部CSSの読み込み方法を学びます。
今回実装したSNSアイコンは、現時点では文字化けしています。これはFont AwesomeのCSSを読み込んでいないためです。
次回は、Font AwesomeのCSSを題材に、WordPressで外部のCSSファイルを正しく読み込む方法を実装します。また、ヘッダー全体のスタイリングを完成させ、見た目を整えていきます。
引き続き、実際に手を動かしながら進めていきましょう。
PRACTICE WordPressのメニュー機能を有効化し、ヘッダーにナビゲーションメニューを実装します。独自コードでデザインの自由度を高めながら、ダッシュボードから管理できる保守性も保つ、両立した実装方法を学びます。
PRACTICE WordPressでCSS/JavaScriptを読み込む正しい方法を学びます。外部ライブラリの読み込み、依存関係の管理、バージョン管理によるキャッシュ対策など、テーマ開発で必須となる基礎知識を身につけます。
WordPressを効率よく確実に学ぶためには、学習の順序が大切です。知識が自然に積み上がるよう、学習ステップに沿って記事を順番に並べています。
学習ストーリー第40話まで掲載中