Best way to approach wordpress page— plugin or manual?

Ok, I have been searching high and low for an easy way to implement this for my client.. ?

Here is what I am trying to accomplish:
http://www.trails2000.org/site/trail_conditions.html

Read More

Not sure what to do?? i can easily make a table and let them update.. ?

Or I was looking at GD Star rating and doing a Multi-set ?? But not sure about that either..

Any thing that I am overlooking ?

Thanks!

Related posts

Leave a Reply

4 comments

  1. Manual coding will be best for this kind of situations, so you have more control of the features you need.

    and consider building this using Post types

       http://codex.wordpress.org/Post_Types
    

    to learn more about Custom Post types, check this slide

    http://www.slideshare.net/williamsba/custom-post-types-and-taxonomies-in-wordpress
    
  2. DON’T do it manually (I gather by ‘manually’, your referring to hard-coding, or having the user edit a table through the WYSIWYG editor?).

    As everyone has said, do it custom. You’ll need to use custom post types, custom taxonomies, and custom fields.

    If you use a plugin, you should look for a plugin that manages custom post types, custom taxonomies, and custom fields, such as this one: http://magicfields.org/

    Having said that, hand-coding it without a plugin isn’t very hard, and should give you a better understanding of how it all fits together.

    ‘Trail’ should be a custom post type. The ‘Trail’ post type should have a custom taxonomy ‘Trail System’, which would hold ‘Colorado Trail System’, ‘Fort Lewis Trail System’, etc. The ‘Trail’ post type should have custom fields for ‘condition’, and possibly ‘comments’. Though ‘comments’ could instead be stored in the post body.

    The client will be able to update the site themselves by adding ‘Trails’ and ‘Trail Systems’ through the WordPress admin interface, similarly to the way they add ‘Posts’ and ‘Categories’.

    Make sense?

    EDIT: Below explains how to set up the above using raw code (ie, no plugin)

    Below is some example code, which should go in functions.php. Once this code is in functions.php, ‘Trails’ should appear in the admin interace, below ‘Posts’. ‘Trail Systems’ should appear in the drop-down menu of ‘Trails’, much like ‘Categories’ do for ‘Posts’. When you add a new ‘Trail’, there should be custom fields below for ‘comments’ and ‘condition’.

    <?php 
    
    // CREATE YOUR CUSTOM POST TYPE
    add_action( 'init', 'create_custom_post_type_trail');
    function create_custom_post_type_trail() {
    
        // Set all the labels for your custom post type, as they will appear in the wordpress admin interface.
        $labels = array( 
            'name' => _x( 'Trails', 'trail' ),
            'singular_name' => _x( 'Trail', 'trail' ),
            'add_new' => _x( 'Add New', 'trail' ),
            'add_new_item' => _x( 'Add New Trail', 'trail' ),
            'edit_item' => _x( 'Edit Trail', 'trail' ),
            'new_item' => _x( 'New Trail', 'trail' ),
            'view_item' => _x( 'View Trail', 'trail' ),
            'search_items' => _x( 'Search Trails', 'trail' ),
            'not_found' => _x( 'No Trails found', 'trail' ),
            'not_found_in_trash' => _x( 'No Trails found in Trash', 'trail' ),
            'parent_item_colon' => _x( 'Parent Trail:', 'trail' ),
            'menu_name' => _x( 'Trails', 'trail' ),
        );
    
        // Set all the options for your custom post type - you may need to change some of these
        $args = array( 
            'labels' => $labels,
            'hierarchical' => false,
    
            'supports' => array( 'title', 'editor', 'custom-fields' ),
            'taxonomies' => array(),
            'public' => true,
            'show_ui' => true,
            'show_in_menu' => true,
            'menu_position' => 5,
    
            'show_in_nav_menus' => true,
            'publicly_queryable' => true,
            'exclude_from_search' => false,
            'has_archive' => true,
            'query_var' => true,
            'can_export' => true,
            'rewrite' => array('slug' => 'trails', 'with_front' => false),
            'capability_type' => 'post'
        );
    
        register_post_type( 'trail', $args );
    }
    
    // ADD CUSTOM FIELDS TO THE TRAIL CUSTOM POST TYPE
    add_action('wp_insert_post', 'add_custom_trail_fields');
    
    function add_custom_trail_fields($post_id) {
        if ( isset($_GET['post_type']) and $_GET['post_type'] == 'trail' ) {
            add_post_meta($post_id, 'condition', '', true);
            add_post_meta($post_id, 'comments', '', true);
        }
        return true;
    }
    
    // ADD CUSTOM TAXONOMY TO THE TRAIL CUSTOM POST TYPE
    add_action( 'init', 'create_trail_taxonomies' );
    function create_trail_taxonomies(){
    
        // Set all the labels for your custom taxonomy, as they will appear in the wordpress admin interface.
        $labels = array(
            'name' => _x( 'Trail Systems', 'taxonomy general name' ),
            'singular_name' => _x( 'Trail System', 'taxonomy singular name' ),
            'search_items' =>  __( 'Search Member Categories' ),
            'all_items' => __( 'All Member Categories' ),
            'parent_item' => __( 'Parent Trail System' ),
            'parent_item_colon' => __( 'Parent Trail System:' ),
            'edit_item' => __( 'Edit Trail System' ), 
            'update_item' => __( 'Update Trail System' ),
            'add_new_item' => __( 'Add New Trail System' ),
            'new_item_name' => __( 'New Trail System Name' ),
            'menu_name' => __( 'Trail System' ),
        ); 
    
        // Set all the options for your custom taxonomy - you may need to change some of these
        $args = array(
            'labels' => $labels,
            'label'=>'Trail Systems',
            'hierarchical'=>true, // this makes them behave like 'categories' as opposed to like 'tags'
            'rewrite' => array('slug' => 'trail_system', 'with_front' => false),
        );
        register_taxonomy('trail_system', 'trail', $args);
    
    }
    
    /*
    // This is for if you make a mistake, and have to unregister a taxonomy and register it with a new name
    add_action( 'init', 'unregister_taxonomy');
    function unregister_taxonomy(){
        global $wp_taxonomies;
        $taxonomy = 'XXXXXXXXX'; // name of your taxonomy goes here.
        if ( taxonomy_exists( $taxonomy))
            unset( $wp_taxonomies[$taxonomy]);
    }
    */
    
    
    ?>
    

    Some other stuff you might find useful:

    You’ll access your trails at a url like http://www.example.com/?post_type=trail or http://www.example.com/trail or similar, depending on how your permalinks are set up.

    In your theme, you can create the files archive-trail.php and single-trail.php for making a custom template for archive/single ‘Trail’ posts.

    Inside The Loop, you can access custom post fields like this:

    <?php
    $fields = get_post_meta( get_the_ID()); // get all custom fields
    echo $fields['comments'][0]; // display 'comments' field
    echo $fields['condition'][0]; // display 'condition' field
    ?>
    

    And again inside The Loop, get your custom taxonomy like this:

    <?php 
    $trail_system = get_the_terms( $post->ID, 'trail_system');
    echo $trail_system;
    ?>
    

    Lastly, I don’t know if you need to do anything with searching Trails, but if so, check this out: http://thereforei.am/2011/10/28/advanced-taxonomy-queries-with-pretty-urls/

  3. In my experience custom is far better – offers more flexibility. It happened to me a lot of times that I used a plugin because initially it saved me some time, and then 70% into the project I had to make some small modifications, which ended up wasting more time on figuring out how and where to make those changes that I could have coded the whole darn thing myself.

  4. You could create them an admin page that saves variables for each of the trails specifically (“good” “bad” or whatever), allowing users who are editors or above to update it. I’d think that the custom solution here would be best, for sure.

    If you login to http://myego.org, then go to the “My EGO” page, you’ll see that sort of admin page (although yours would be all dropdown menus, while this one is all fields).