サポート » プラグイン » Advanced custom Fieldsでページリンクがあるときと真偽値が真のときに出力した

  • 解決済 seinn

    (@seinn)


    Advanced custom Fieldsのプラグインを使って、カスタムフィールドを大量に使ってページ作成をしています。

    テキストボックスなどは基本的に下記を使ってフロントに値を出力しています。
    <?php if ( post_custom(‘フィールドの値’,’true’)) : ?>
    (コードが入る)
    <?php else: ?>
    (コードが入る)
    <?php endif; ?>

    ただ、このやり方だと、

    ●カスタムフィールド作成画面で「ページ内リンク(セレクトボックスで他のページが選択できるもの)」のフィールドを作り、
    入力画面でページ内リンクが選択されている場合に、ボタンを表示させるためのコードを出力する

    ●カスタムフィールド作成画面で「真偽」のフィールドを作り、真(チェックボックスにチェック)の場合に文章を表示させるためのコードを出力する

    ことができず困っています。

    ifの中の部分の書き方についていろいろ調べたのですが、いまいち方法がわからず、ご質問させていただきました。phpの知識は初心者レベルです。
    よろしくお願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • Advanced Custom Fieldspost_custom ではなく、独自のカスタムテンプレートタグである get_field を使うことが推奨されていた気がします。

    <?php if( get_field( 'link' ) ): ?>
    	リンクが選択されている場合
    <?php else : ?>
    	リンクが選択されていない場合
    <?php endif; ?>
    トピック投稿者 seinn

    (@seinn)

    >Tsuyoshi.さま

    ご連絡ありがとうございます。
    get_fieldでやってみてもpost_custom~の時と動作が変わらない状態です。

    ページ内リンクの部分について更に具体的な説明をすると、
    「if~で条件を設定しているのに、ページリンク項目を未選択にした記事、もページリンク先を設定している記事も、同様にボタンが出力されてしまう。未選択の項目はボタンが出力されないようにしたい。」です。

    何卒よろしくお願いいたします。

    んー、こちらの環境では未選択の時とそうでない時と正しく分岐できましたがね。

    未選択の時はget_fieldの返り値がfalseが返ってくるので、var_dumpで見てみると良いでしょう。

    <?php var_dump( get_field( 'link' ) ); ?>

    トピック投稿者 seinn

    (@seinn)

    こちら、var_dumpの結果が変だったのでカスタムフィールド側を確認し、解決しました。
    無事表示されるようになりました。ありがとうございました!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「Advanced custom Fieldsでページリンクがあるときと真偽値が真のときに出力した」には新たに返信することはできません。