質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Q&A

解決済

1回答

463閲覧

wordpress advanced custom fields pro でオプションページを使って値を表示させるときの分岐について

teraota27

総合スコア27

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

0グッド

0クリップ

投稿2019/07/28 06:23

wordpressでサイトを作っています。
フッターに各SNSのアイコンを付けてリンクを貼りたいと思っています。

こちらの記事を参考にオプションページを作ってadvanced custom fields proで各SNSリンクの入力欄を作りました。

footer.phpには以下のように記述をしました。

<footer id="footer_wrap"> <div id="copyright_wrap"> <ul class="sns_icon"> <li><a href="<?php the_field('facebook_url','option'); ?>" target="_blank"><i class="fab fa-facebook-square"></i></a></li> <li><a href="<?php the_field('instagram_url','option'); ?>" target="_blank"><i class="fab fa-instagram"></i></a></li> <li><a href="<?php the_field('twitter_url','option'); ?>" target="_blank"><i class="fab fa-twitter-square"></i></a></li> </ul> <p id="copyright"><small>&copy; 2019 xxxxxx</small></p> </div> <div id="pagetop"><a href=".header" class="button"><span class="fas fa-arrow-up"></span></a></div> </footer> <?php wp_footer(); ?> </div> </body> </html>

これで正しく表示されたのですが、URLの入力のない場合にはそのアイコンは非表示にしたいと思い、下記のように修正しました。

<footer id="footer_wrap"> <div id="copyright_wrap"> <ul class="sns_icon"> <?php if(post_custom('facebook_url','option')): ?> <li><a href="<?php the_field('facebook_url','option'); ?>" target="_blank"><i class="fab fa-facebook-square"></i></a></li> <?php endif; ?> <?php if(post_custom('instagram_url','option')): ?> <li><a href="<?php the_field('instagram_url','option'); ?>" target="_blank"><i class="fab fa-instagram"></i></a></li> <?php endif; ?> <?php if(post_custom('twitter_url','option')): ?> <li><a href="<?php the_field('twitter_url','option'); ?>" target="_blank"><i class="fab fa-twitter-square"></i></a></li> <?php endif; ?> </ul> <p id="copyright"><small>&copy; 2019 xxxxxxxx</small></p> </div> <div id="pagetop"><a href=".header" class="button"><span class="fas fa-arrow-up"></span></a></div> </footer> <?php wp_footer(); ?> </div> </body> </html>

ですが、URLの入力があるにも関わらず、すべて非表示になっていまいます。
入力し直して「更新」しても変わらず。

分岐の書き方が間違っているのでしょうか?通常のページはこれでいけたのですが。。
それともオプションページを使うときには特殊な書き方があるのでしょうか??

PHP初心者です。解決策がありましたらアドバイスお願いします!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

get_fieldで確認すればよいと思います。

【ACF | the_field()】
https://www.advancedcustomfields.com/resources/the_field/

Check if value exists

This example shows how to check if a value exists before displaying it.

PHP

1<?php if( get_field('text_field') ): ?> 2 <h2><?php the_field('text_field'); ?></h2> 3<?php endif; ?>

投稿2019/07/28 08:29

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teraota27

2019/07/28 09:12

ありがとうございます!get_fieldで正しく動作しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問