I have create a custom post object with custom post metas.

Like this:

$post->custom_meta = get_post_meta();

$custom_post = $post;

Am I how to define the $custom_post object to global in master level?

Can I request any file it like single.php

global $custom_post;


echo $custom_post->custom_meta;

or index.php

global $custom_post;

// The Loop
if ( $custom_post->have_posts() ) {
    echo '<ul>';
    while ( $custom_post->have_posts() ) {
        echo '<li>' . get_the_title() . '</li>';
        echo $custom_post->custom_meta;
    echo '</ul>';
} else {
    // no posts found

How to set $custom_post an global and in where? (functions.php?) thx.

  • 3
    Why would you want to do that when you could simply call get_post_meta() in your loop (and basically, everwhere in WordPress - templates, template parts, etc).
    – Sally CJ
    Commented Jan 12, 2021 at 9:15
  • 1
    global is not good practice in PHP anymore. Have you looked into other more recent programming patterns to solve this?
    – kero
    Commented Jan 12, 2021 at 9:56


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.