Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I have created a custom post type in WordPress as shown in figure.

enter image description here What i want is to show the values eneterd in this custom post in the grid view of admin panel. Now the admin panel is only showing the Post title, date and comment images but i want to show the Pair2,buy sell and activity fields values as entered in my custom post . I have searched alot but couldn't find any solution. How should i go about it in WordPress? enter image description here

EDIT
Here is how i am making my custom post

   <?php
if( ! function_exists( 'quote_create_post_type' ) ) :
  function quote_create_post_type() {
    $labels = array(
      'name' => __( 'ForexPair' ),
      'singular_name' => __( 'ForexPair' ),
      'add_new' => __( 'Add Pair Entry' ),
      'all_items' => __( 'All Pairs' ),
      'add_new_item' => __( 'Add Pair' ),
      'edit_item' => __( 'Edit Pair' ),
      'new_item' => __( 'New Pair' ),
      'view_item' => __( 'View Pair' ),
      'search_items' => __( 'Search Pairs' ),
      'not_found' => __( 'No pair found' ),
      'not_found_in_trash' => __( 'No pair found in trash' ),
      'parent_item_colon' => __( 'Parent pair' )
      //'menu_name' => default to 'name'
    );
    $args = array(
      'labels' => $labels,
      'public' => true,
      'has_archive' => true,
      'publicly_queryable' => true,
      'query_var' => true,
      'rewrite' => true,
      'capability_type' => 'post',
      'hierarchical' => false,
      'supports' => array(
        'title'
      ),
      'register_meta_box_cb' => 'quote_add_post_type_metabox'
    );
    register_post_type( 'quote', $args );
    //flush_rewrite_rules();

  }
  add_action( 'init', 'quote_create_post_type' );


  function quote_add_post_type_metabox() { // add the meta box
    //add_meta_box( 'quote_metabox', 'quote_metabox', 'quote', 'normal' );
    add_meta_box( 'quote_metabox', 'Pair Entries', 'quote_metabox', 'quote', 'normal' );
  }


  function quote_metabox() {
    global $post;
    // Noncename needed to verify where the data originated
    echo '<input type="hidden" name="quote_post_noncename" id="quote_post_noncename" value="' . wp_create_nonce( plugin_basename(__FILE__) ) . '" />';

    // Get the data if its already been entered
    $quote_post_entryprice = get_post_meta($post->ID, '_quote_post_entryprice', true);
    $quote_post_stoploss = get_post_meta($post->ID, '_quote_post_stoploss', true);
    $quote_post_pairname = get_post_meta($post->ID, '_quote_post_pairname', true);
    $quote_post_buysell = get_post_meta($post->ID, '_quote_post_buysell', true);
    $quote_post_activity = get_post_meta($post->ID, '_quote_post_activity', true);
    $quote_post_takeprofit = get_post_meta($post->ID, '_quote_post_takeprofit', true);
    // Echo out the field
    ?>
   <link rel="stylesheet" href="http://gripforex.com/wp-content/themes/Forsy/select2.css" />
  <script type="text/javascript" src="http://gripforex.com/wp-content/themes/Forsy/jquery-1.7.2.min.js"></script>
  <script type="text/javascript" src="http://gripforex.com/wp-content/themes/Forsy/jquery-ui-1.10.3.custom.min.js"></script>
  <script type="text/javascript" src="http://gripforex.com/wp-content/themes/Forsy/select2.js"></script>
  <style>
  .lbl{
  width: 86px;
display: block;
line-height: 20px;
  }
  </style>
    <div class="width_full p_box">
      <p>

        <label class="lbl">Pair:</label>
  <script>
        $(document).ready(function() { $("#e1").select2({

      matcher: function(term, text) { return text.toUpperCase().indexOf(term.toUpperCase())==0; }
});
    });
    $(document).ready(function() { $("#e2").select2({
      matcher: function(term, text) { return text.toUpperCase().indexOf(term.toUpperCase())==0; }
}); });
    $(document).ready(function() { $("#e3").select2({
      matcher: function(term, text) { return text.toUpperCase().indexOf(term.toUpperCase())==0; }
}); });
    </script>

  <select name="quote_post_pairname" id="e1" style="width:144px;">
  <option value="AUD/CAD" <?php if($quote_post_pairname=="AUD/CAD") echo "selected"; ?> >AUD/CAD</option>
  <option value="AUD/CHF" <?php if($quote_post_pairname=="AUD/CHF") echo "selected"; ?> >AUD/CHF</option>



  </select></p>
        <p>
        <label class="lbl">Buy Sell
          <select name="quote_post_buysell" id="e2" style="width:144px;">
            <option value="Buy" <?php if($quote_post_buysell=="Buy") echo "selected"; ?> >Buy</option>
            <option value="Sell" <?php if($quote_post_buysell=="Sell") echo "selected"; ?> >Sell</option>
          </select>
        </label>
      </p>
        <p>
        <label class="lbl">Activity
          <select name="quote_post_activity" id="e3" style="width:144px;">
            <option value="Get Ready" <?php if($quote_post_activity=="Get Ready") echo "selected"; ?> >Get Ready</option>
            <option value="Active" <?php if($quote_post_activity=="Active") echo "selected"; ?> >Active</option>
          </select>
        </label>
      </p>      
      <p>
        <label class="lbl">Entry Price<br>
          <input type="text" name="quote_post_entryprice" class="widefat" value="<?php echo $quote_post_entryprice; ?>">
        </label>
      </p>
      <p><label class="lbl">Stop Loss<br>
          <input type="text" name="quote_post_stoploss" value="<?php echo $quote_post_stoploss; ?>" class="widefat" />
        </label>
      </p>
      <p><label class="lbl">Take Profit<br>
          <input type="text" name="quote_post_takeprofit" value="<?php echo $quote_post_takeprofit; ?>" class="widefat" />
        </label>
      </p>      
    </div>
  <?php
  }


  function quote_post_save_meta( $post_id, $post ) { // save the data

    if( !wp_verify_nonce( $_POST['quote_post_noncename'], plugin_basename(__FILE__) ) ) {
      return $post->ID;
    }

    // is the user allowed to edit the post or page?
    if( ! current_user_can( 'edit_post', $post->ID )){
      return $post->ID;
    }

    $quote_post_meta['_quote_post_entryprice'] = $_POST['quote_post_entryprice'];
    $quote_post_meta['_quote_post_stoploss'] = $_POST['quote_post_stoploss'];
    $quote_post_meta['_quote_post_pairname'] = $_POST['quote_post_pairname'];
    $quote_post_meta['_quote_post_buysell'] = $_POST['quote_post_buysell'];
    $quote_post_meta['_quote_post_activity'] = $_POST['quote_post_activity'];
    $quote_post_meta['_quote_post_takeprofit'] = $_POST['quote_post_takeprofit'];
    // add values as custom fields
    foreach( $quote_post_meta as $key => $value ) { // cycle through the $quote_post_meta array
      // if( $post->post_type == 'revision' ) return; // don't store custom data twice
      $value = implode(',', (array)$value); // if $value is an array, make it a CSV (unlikely)
      if( get_post_meta( $post->ID, $key, FALSE ) ) { // if the custom field already has a value
        update_post_meta($post->ID, $key, $value);
      } else { // if the custom field doesn't have a value
        add_post_meta( $post->ID, $key, $value );
      }
      if( !$value ) { // delete if blank
        delete_post_meta( $post->ID, $key );
      }
    }
  }
  add_action( 'save_post', 'quote_post_save_meta', 1, 2 ); // save the custom fields
endif; // end of function_exists()


if( ! function_exists( 'view_quotes_posts' ) ) : // output
  function view_quotes_posts( $num = 4, $do_shortcode = 1, $strip_shortcodes = 0 ) {

    $args = array(
      'numberposts'     => $num,
      'offset'          => 0,
      //'category'        => ,
      'orderby'         => 'menu_order, post_date', // post_date, rand
      'order'           => 'DESC',

      'post_type'       => 'quote',

      'post_status'     => 'publish',
      'suppress_filters' => true,
    );

    $posts = get_posts( $args );
    global $wpdb;

 $querystr = "select $wpdb->posts.* 
    FROM $wpdb->posts
  WHERE $wpdb->posts.post_type = 'quote'
  ";


    $html = '<table><tr><th>Pair</th><th>Action</th><th>Status</th><th>Entry Price</th><th>Stop Loss</th><th>Take Profit</th></tr>';
    foreach ( $posts as $post ) {
      $meta_entryprice = get_post_meta( $post->ID, '_quote_post_entryprice', true );
      $meta_stoploss = get_post_meta( $post->ID, '_quote_post_stoploss', true );
      $meta_pairname = get_post_meta( $post->ID, '_quote_post_pairname', true );
      $meta_buysell = get_post_meta( $post->ID, '_quote_post_buysell', true );
      $meta_activity = get_post_meta( $post->ID, '_quote_post_activity', true );
      $meta_takeprofit = get_post_meta( $post->ID, '_quote_post_takeprofit', true );


      $html.='<tr>';
      $html .= '

          <td>'.$meta_pairname.'</td>
          <td>'.$meta_buysell.'</td>
          <td>'.$meta_activity.'</td>
          <td>'.$meta_entryprice.'</td>

          <td>'.$meta_stoploss.'</td>

          <td>'.$meta_takeprofit.'</td>
        ';
      $html.='</tr>';
    }
    $html .="</table>";
    $html = '<div class="wrapper">'.$html.'</div>';
    return $html;
  }
endif; 
?>
share|improve this question
    
How did you register those custom fields? Are you using a plugin to do that? –  Sven Dec 20 '13 at 12:42
    
@Sven No plugin. –  james Dec 20 '13 at 12:51
1  
@Sven see the update.:) –  james Dec 20 '13 at 13:00

1 Answer 1

up vote 1 down vote accepted

You can use the manage_edit-${post_type}_columns filter combined with the manage_${post_type}_posts_custom_column action. Check the example within the Codex and deconstruct it step by step.

First make sure to enter the right name of your registered custom post type. You registered the post type with the name quote.

Second define the columns you want to add (see set_custom_edit_quote_columns) and allocate the appropriate values (see custom_quote_columns).

You should end up with something like this:

add_filter( 'manage_edit-quote_columns', 'set_custom_edit_quote_columns' );
add_action( 'manage_quote_posts_custom_column' , 'custom_quote_columns', 10, 2 );

function set_custom_edit_quote_columns( $columns ) {

    $columns['pair'] = __( 'Pair' );
    $columns['buysell'] = __( 'Buy Sell' );
    $columns['activity'] = __( 'Activity' );

    $columns['entryprice'] = __( 'Entry Price' );
    $columns['stoploss'] = __( 'Stop Loss' );
    $columns['takeprofit'] = __( 'Take Profit' );

    return $columns;
}

function custom_quote_columns( $column, $post_id ) {
    switch ( $column ) {

        case 'pair' :
            echo get_post_meta( $post_id, '_quote_post_pairname', true );
            break;

        case 'buysell' :
            echo get_post_meta( $post_id, '_quote_post_buysell', true );
            break;

        case 'activity' :
            echo get_post_meta( $post_id, '_quote_post_activity', true );
            break;

        case 'entryprice' :
            echo get_post_meta( $post_id, '_quote_post_entryprice', true );
            break;

        case 'stoploss' :
            echo get_post_meta( $post_id, '_quote_post_stoploss', true );
            break;

        case 'takeprofit' :
            echo get_post_meta( $post_id, '_quote_post_takeprofit', true );
            break;

    }
}
share|improve this answer
    
Worked Perfectly. Thanks..:) –  james Dec 20 '13 at 16:26

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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