I want to get content from one custom field of different pages along side their page titles and I'm using the following code:

    $mypages = get_pages( array(
    'sort_order' => 'ASC',
    'sort_column' => 'post_title',
    'hierarchical' => 1,
    'exclude' => '',
    'include' => '',
    'meta_key' => '',
    'meta_value' => '',
    'authors' => '',
    'child_of' => 53,
    'parent' => -1,
    'exclude_tree' => '',
    'number' => '',
    'offset' => 0,
    'post_type' => 'page',
    'post_status' => 'publish'
 ) );

    foreach( $mypages as $page ) {      
        $content = $page->post_content;
                $new = $page->get_post_custom_values('new_file');
        if ( ! $content ) // Check for empty page

        $content = apply_filters( 'the_content', $content );
        <h2><a href="<?php echo get_page_link( $page->ID ); ?>"><?php echo $page->post_title; ?></a></h2>

                        <a style="display:block; text-align: center;" title="Download Now" href="<?php $new;  ?>"><img src="<?php bloginfo('template_url'); ?>/images/new-file.png" alt="Download the File" /></a>


I'm able to get page title but not getting my custom fields value. Please guide me in this regard. Your help'll be highly appreciated in this regard.

  • all the cusatom post vlaues will stored in the post meta so you need to use th get_post_meta() you can study more about this in wordpress codex Sep 18, 2013 at 8:41
  • get_post_custom_values can also take a post id parameter to retrieve values from any post/page. <?php get_post_custom_values($key, $post_id); ?>
    – Matt.C
    Sep 18, 2013 at 8:43

1 Answer 1


I think your problem is here:

$new = $page->get_post_custom_values('new_file');

You must use:

$new = get_post_custom_values('new_file', $page->ID);

You must note also that get_post_custom_values() return an array, so $new will be an array. I think in your case is better to use get_post_meta() in this way:

$new = get_post_meta($page->ID, 'new_file', true);
  • Thanks Cybnet for your response. But it's still not working. I'm now using this code of yours $new = get_post_meta($page->ID, 'new_file', true); but it's not working. When I tried to echo it, it's showing different numbers instead of url's. Sep 18, 2013 at 9:13
  • Please be noted I've place URL's in those custom fields Sep 18, 2013 at 9:19
  • It is not important what you have set in the "new_file" field, get_post_meta($page->ID, 'new_file', true); will return the value as a string. Can you show the exact way you have used the suggested code?
    – cybmeta
    Sep 18, 2013 at 12:17

Your Answer

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

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