Using Custom Fields

Dump out all custom fields as a list

<?php the_meta(); ?>

Display value of one specific custom field

<?php echo get_post_meta($post->ID, 'mood', true); ?>

"mood" would be ID value of custom field

Display multiple values of same custom field ID

<?php $songs = get_post_meta($post->ID, 'songs', false); ?>
<h3>This post inspired by:</h3>
	<?php foreach($songs as $song) {
		echo '<li>'.$song.'</li>';
	} ?>

Display custom field only if exists (logic)

    $url = get_post_meta($post->ID, 'snippet-reference-URL', true); 

	if ($url) {
	    echo "<p><a href='$url'>Reference URL</a></p>";

Reference URL


  1. User Avatar
    Daniel Groves
    Permalink to comment#

    OMG. This is probably the most useful snippet I have ever come across, the amount of time I have spent in the past trying to remember this!

  2. User Avatar
    Jeff Bridgforth
    Permalink to comment#

    Thanks. I was just looking for the “Display custom field only if exists (logic)” today for a project and could not find an example that I could understand how to change for my specific case. This snippet is just what I needed.

  3. User Avatar
    Raphael Essoo-Snowdon
    Permalink to comment#

    The logic snippet worked wonderfully for me. Thanks.
    One question though, why haven’t you closed the tag?

  4. User Avatar
    Permalink to comment#

    Thank you sooooo much! I adore your snippets!

  5. User Avatar
    Slate Blank

    Very nice quick and easy reference for custom fields. Thanks a lot!

  6. User Avatar
    Permalink to comment#


    These snippets are great. I was wondering if you could help me.

    I am trying to match the title of a page to a custom field and display any posts that match that custom field.

    Total newbie here to both php and wordpress.

    Any help is much appreciated!


  7. User Avatar
    Permalink to comment#

    I solved my problem with Custom fields, thanks

  8. User Avatar
    Matthew Taylor
    Permalink to comment#

    I like to use the following chunk of code in my custom loops. It has a few advantages:
    I can attach ID’s to each custom key/value pair. I can reorder them any way i feel like it. If i need to change the key name for the custom field I can, and it wont break the old posts.. I can just add another chunk that pull up the new key. Any missing key/value pairs collapse to nothing. No broken layout! If I have a set the should be rendered together if the first value is present I can wrap them in opening and closing divs that only render if the first key exists.

    			&lt?php if ( get_post_meta($post->ID, '01.0 Unit ID', true) ) : ?>
    				&ltdiv id="unitid" class="feature-pair xclearfix">
    					&ltdiv class="feature-label">Unit ID:&lt/div>
    					&ltdiv class="feature-value">
    					&lt?php echo get_post_meta($post->ID, '01.0 Unit ID', true) ?>
    			&lt?php endif; ?>
  9. User Avatar
    Wayne Hatter
    Permalink to comment#

    Hey Chris,

    I love your code snippets sections. I was wondering…

    How did you style the blocks around the code that you present on your page?


  10. User Avatar
    Permalink to comment#

    Hi all, this works great but, let’s imagine I have 2 post with the same author:

    Track –>
    IS THIS IT by Author “The strokes”
    REPTILIA by Author “The strokes”

    when I put on Author “The Strokes on 2 (or more) different posts The cycle repeats author 2 (or more) times.

    Is there a Way to put something like this:

    The Strokes:
    ‘is this it’

    Michael Jackson
    ‘Beat it’

    And so on…

    is this possible?

    • User Avatar
      Permalink to comment#

      Could you please show us your code, if you have it? I’ll try to help if I can.

  11. User Avatar
    Permalink to comment#

    I don’t know in what fantasy world this snippet would work @ChrisCoyer, but there is a SYNTAX error while outputing the reference url line.

        $url = get_post_meta($post->ID, 'snippet-reference-URL', true); 
        if ($url) {
            echo "<p><a href='$url'>Reference URL</a></p>";


        $url = get_post_meta($post->ID, 'snippet-reference-URL', true); 
        if ($url) {
            echo "<p><a href=' . $url . '>Reference URL</a></p>";
    • User Avatar
      Permalink to comment#

      ID, ‘snippet-reference-URL’, true);

      if ($url) {
      echo “Reference URL“;
      you are wrong because double quotes echo append like
      echo “Helllo”.$world.”welcome”;
      don’t use mixed double and single quotes for append

  12. User Avatar
    Nick M
    Permalink to comment#

    Would anyone know how to extend the use of WP Custom Fields such as this:

    In my index.php (Blog Feed) I’d like a user with admin privlieges to be able to mark a post as FLAGGED (Turn color red) from the FRONT END. An ideal method would to have a bootstrap glyphicon button (flag) near the post title so that when clicked, the anchor link points to an action URL to update the post meta key ‘flag’ to ‘yes’.

    I plan to use if else statements to toggle this feature.

    My usage is for a VERY basic/simple site. AJAX is not required, I will just redirect the user back to the Front Page after they’ve clicked the action button.

    Let me know if I’m totally off with my approach.

  13. User Avatar
    Jo / thedesertecho

    Thank you so much, my template files were leaving all sorts of random custom field text and with this I fixed it just to display what I wanted.

  14. User Avatar
    Permalink to comment#

    Thanks. Great solution for dealing with multiple Custom Fields. I have few wordpress sites managed by me and i seldom in search of the custom fields functionality…

  15. User Avatar
    Permalink to comment#

    as simple as this is all i need.

    ID, ‘mood’, true); ?>


  16. User Avatar
    Permalink to comment#


    I am so glad to find this site for helping in wordpress,
    So I have a big problem in the custom field which I lost the text format in it and it force me to write my content text inside the custom field in html.
    This problem appeared after I updated from wordpress 3.7.0 to wordpress 4.0 so please help me to fix this problem.
    If you want to see a photo for the problem I can send it to you in attachment.

    Best regards

    Thanks alot

    Philip V.

  17. User Avatar
    Sarah Carney
    Permalink to comment#

    Exactly what I needed. <3

  18. User Avatar
    Permalink to comment#
    Also you can use wpView plugin for displaying custom fields in your site

Posting Code

You may write comments in Markdown. This makes code easy to post, as you can write inline code like `<div>this</div>` or multiline blocks of code in triple backtick fences (```) with double new lines before and after.

Code of Conduct

Absolutely anyone is welcome to submit a comment here. But not all comments will be posted. Think of it like writing a letter to the editor. All submitted comments will be read, but not all published. Published comments will be on-topic, helpful, and further the discussion or debate.

Want to tell us something privately?

Feel free to use our contact form. That's a great place to let us know about typos or anything off-topic.

Submit a Comment