0

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

<?php
    $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
            continue;

        $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>


    <?php
    }   
?>

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 – Vikas Gautam Sep 18 '13 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 '13 at 8:43
0

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. – user1666698 Sep 18 '13 at 9:13
  • Please be noted I've place URL's in those custom fields – user1666698 Sep 18 '13 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 '13 at 12:17

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.