テンプレートのheader.php
ファイルに小さなコードを入れようとしています。カスタムフィールド値を取得したい.
現在のページoutsideからカスタムフィールドを呼び出そうとしています、ところで。
投稿からカスタムフィールドの値を取得する必要がある場合は、これを実行しても問題ありませんが、ページに対しては実行できません。
これが私のコードです:
global $wp_query;
$postid = $wp_query->post->ID;
echo get_post_meta($postid, 'teaser-text', true);
何が悪いのかわからない。私は$wp_query->post->ID;
をこの$wp_query->page->ID;
に変更しても成功しませんでした。
任意の助けは大歓迎です、ありがとうございました!
使ってみてください
get_metadata('post', $postid, 'teaser-text, true);
これら2つは実際には同じです。何の違いもないはずです。以前私は間違った議論をした。 var_dump()は、実際に何が起きているのかを表示します。 IDが正しいこと、 'teaser-text'が存在することを確認してください。他のメタ名を使用して試すこともできます(テスト目的のみ)。
これはテストされていませんが、試してみてください。
if ( is_page() ){
$page_id = get_queried_object_id();
$meta = get_post_meta( $post_id, 'teaser-text',true)
}
ループを開始してから巻き戻す必要があります。
$wp_query->the_post(); // Now $post is the first post (page) in the loop
echo get_post_meta( $post->ID, 'teaser-text', true );`
$wp_query->rewind; // This rewinds the query so the loop functions normally
あるいは、クエリの最初の投稿からIDを取得するだけです。
echo get_post_meta( $wp_query->posts[0]->ID, 'teaser-text', true );