I need to know solutions for the question above. There are cases, when we need post meta information outside the loop. Let's say, I'm developing theme that will display ads from certain vendor on that page (everywhere on that particular page) based on post meta information. Because, I've bilingual blog and I will use different vendor for each language (for CTR reason).

So, do you guys have a solutions for this kind of problem?


Do you mean meta like in custom fields or information from post in general?

Basically as long as you have post id you can get anything you want, not tied to the Loop.

For custom fields there is get_post_meta().

For general information (like title or content) there is number of functions (many template tags can be explicitly passed post id, they just default to current Loop item) and there is get_post_field($field, $post); (can't find in documentation, but self-explaining).

| improve this answer | |

The global variable $post contains all the post details, so that you can use them outside the loop. Basically, you can do:

global $post;
echo get_post_meta($post->ID, 'my-ad', true);
| improve this answer | |
  • 1
    Thanks @sorich87! Since wordpress 4.5x you can use a short and easier way to echo post_meta: global $post; echo $post->my-ad; – gtamborero Dec 4 '18 at 11:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.