【WP】「Smart Custom Fields」を固定ページで使ったときに値が取得できないときの対処方法
個人的なメモとして、結構困ったので書いておきます。
プラグイン「Smart Custom Fields」ついて
これについては、詳しく書く必要あるかもしれないですが、また今度書いておきます。
検索すれば出てくるので、ほとんど似た内容になりますからね。
簡単にいうと、カスタムフィールドを簡単につかうことができるプラグインですね。
カスタムフィールドって、自分でするとfunction.phpに色々書いたりとかめんどくさいのです。
ところが、このプラグインを入れればアッという間にしかも視覚的にも見やすくカスタムフィールドが使えちゃうのです。
カスタムフィールドって何って人はこの記事にはたどり着かないと思うので割愛させていただきます。
以前は、「Advanced Custom Fields」とかを使っていたんですけど、データベースで不具合が起きたりと問題が起こったのでこちらに乗り換えました。
日本人の方が作っているのでやっぱり使いやすいですね。
「Smart Custom Fields」を固定ページでの使ったときに値が取得できないときの対処方
さっそく本題に入りますが、「Smart Custom Fields」を固定ページで使ったときにうまく取得できなくて悪戦苦闘しました。
まぁ、わかれば簡単なことだったんですが、まずは固定ページで使うときに皆さんはだいたい下のような設定をするはずです。
通常カスタムフィールドは、新しい入力項目を増やしたいなどに使うので、新着情報のカスタム投稿すべてに反映させたりとIDを指定しないことが多いと思います。
でも、固定ページの場合は1つのページが独立していることが多いので、それぞれの入力項目が変わるのでそれぞれのページIDに反映させたいことがあると思います。
さて、じゃあ、出力するかと思っていつもの投稿やカスタム投稿のように下のように取得すると何もでない・・・。
<?php
$cf_sample = SCF::get('sample');
foreach ($cf_sample as $field) {
echo get_post($field)->post_title;//タイトル
echo get_permalink($field);//URL
}
?>
なんでだー!投稿でやったときは簡単に出たやんけ!
と色々と試すこと1時間ほど。
あれ?もしかして、取得するときにID指定しないといけないのでは?
というわけで、
$cf_sample = SCF::get('sample',61);
カスタムフィールドを取得するときにページのIDをしっかり指定してください。
はい。よく考えればわかることです。
結構忘れがちですけど、固定ページを取得するときはしっかりとページIDなどで指定しましょう。
最近固定ページをいじってなかったから勉強になりました。
この投稿へのトラックバック
トラックバックはありません。
- トラックバック URL
この投稿へのコメント