My company is hosting an event where 50 clients will be at an exhibition.

I want to create an Ehibitors section with separate admin menu. I want to be able to add Exhibits with custom fields for exhibitor_id, exhibitor_logo_img, exhibitor_title and exhibitor_bio.

What is the best way to do this? I dont want to end up with 50 exhibits in one post/page. Ideally, I want 50 separate and sortable pages within a admin menu section.

Any ideas? Hope this makes sense, WordPress noob.


  • you could use custom post types, which is a bit overkill for such a list, or take a look at PODS - podsframework.org. This is exactly the type of datastorage you need here.
    – fischi
    Nov 16, 2012 at 9:35

3 Answers 3


This would probably best be solved with a custom post type for the Exhibit.

That will give you a new section in the admin-area with posts/pages for each exhibitor. That way you can for example use:

  • Post thumbnail as "exhibitor_logo_img"

  • The post title as "exhibitor_title"

  • The content area as "exhibitor_bio"

  • And if you need the "exhibitor_id" separate from the content, that could be done with a custom field named "exhibitor_id".

Have a look in the WordPress codex for info on how to setup a custom post type.

Or if you prefer a more graphical way of doing it, you can also do the same with a plugin. There are several plugins that handles the setup. Such as "Custom Post Type UI".

  • Thanks, I have been having a go with CPT for a while. It should do what i want it to along with the AdvancedCustomFields plugin and CodepressAdminColumns. Im having issues adding a ACF logo image. Its probably related to the plugin. Nov 16, 2012 at 15:42

As mentioned before, I think a Custom Post Type is not really the thing you are looking for here.

I would create a Custom Data Table with the PODS Framework where you can add exactly the fieldds needed, and use them in your templates. You don't need all the post functionality here, like post_date, excerpt etc.

  • You are probably right that Custom Post Types might be a little overkill. Good tip about the PODS Framework, I had totally forgotten about that!
    – jzatt
    Nov 16, 2012 at 9:58
  • Thanks, for reminding me about PODS. I might give this a go since im having some minor problems with CPT. Nov 16, 2012 at 15:44

Don't know if this is enough for you, but in WP does exists the possibility to add and manage custom profile fields, that are in the Users pages, in a very simple way.

Here is the code I use in one of my sites:

/************** User Info */
function GSN_add_custom_user_profile_fields( $user ) {
<h3><?php _e('Altre Informazioni', 'GSN_textdomain'); ?></h3>
<table class="form-table">
            <label for="tessera"><?php _e('Tessera FIDAL', 'GSN_textdomain'); ?>
            <input type="text" name="tessera" id="tessera" value="<?php echo esc_attr( get_the_author_meta( 'tessera', $user->ID ) ); ?>" class="regular-text" /><br />
            <span class="description"><?php _e('Inserire il proprio numero tessera FIDAL: FE0.....', 'GSN_textdomain'); ?></span>
            <label for="annonascita"><?php _e('Anno di nascita', 'GSN_textdomain'); ?>
            <input type="text" name="annonascita" id="annonascita" value="<?php echo esc_attr( get_the_author_meta( 'annonascita', $user->ID ) ); ?>" class="regular-text" /><br />
            <span class="description"><?php _e('Inserire il proprio anno di nascita', 'GSN_textdomain'); ?></span>
<?php }
function GSN_save_custom_user_profile_fields( $user_id ) {
    if ( !current_user_can( 'edit_user', $user_id ) )
        return FALSE;
    update_usermeta( $user_id, 'tessera', $_POST['tessera'] );
    update_usermeta( $user_id, 'annonascita', $_POST['annonascita'] );
add_action( 'show_user_profile', 'GSN_add_custom_user_profile_fields' );
add_action( 'edit_user_profile', 'GSN_add_custom_user_profile_fields' );
add_action( 'personal_options_update', 'GSN_save_custom_user_profile_fields' );
add_action( 'edit_user_profile_update', 'GSN_save_custom_user_profile_fields' );

Your Answer

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

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