• 解決済 unjmj

    (@unjmj)


    静的ページにて、
    「指定カテゴリの」「最新記事から○番目の」「カスタムフィールドAの値」を表示したいのですが、
    どのように取得すれば良いのでしょうか?
    ループさせる必要は無く、単独で使いたいのですが・・・

    宜しくお願いします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • (内容に問題があったので削除しました)

    こんにちは。

    function get_post_meta_by_query( $query='', $key='' ) {
        if ( !empty( $query ) ) {
            $obj_query = new WP_Query;
            $obj_query->parse_query( $query );
            $obj_query->set( 'posts_per_page', 1 );
            $obj_query->get_posts();
            if ( $obj_query->have_posts() ) {
                $id = $obj_query->post->ID;
            }
            unset( $obj_query );
        }
        return ( !empty( $id ) ) ? get_post_meta( $id, $key, true ) : '';
    }

    という関数を、テーマの functions.php に追加し、テンプレートの所定の位置で

    <?php echo esc_html( get_post_meta_by_query( 'cat=1&offset=5', 'カスタムフィールドA' ) ); ?>

    のようなコードを記述してみてください。この例では、カテゴリーIDが1の最新記事から6件目のカスタムフィールドAの値を取得、表示できるはずです。esc_html() は値に HTML を含む場合はやめて、代わりに適切なフィルタを適用した方が良いかもしれません。

    条件の指定方法はテンプレートタグの query_posts() と同じですが、強制的に 1 件のみの表示としてありますので、表示件数についての指定は無効になります。

    # 先ほどは、投稿した関数に問題があったので一旦削除しました。失礼しました。

    トピック投稿者 unjmj

    (@unjmj)

    返信が遅れてしまいすみません。
    書いて頂いたコードを試してみたところ、まさに希望通りに表示されました。
    テンプレートタグでは対処出来ず、関数を自作する知識もまだ無い為
    半ば諦めていたのですが・・・本当に助かりました。
    ループが不要なのでとても使い易いです。

    ご親切にありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)

トピック「条件指定でカスタムフィールドの値を取得したい」には新たに返信することはできません。