adding custom post type 'partners' to the theme with name, title, email , phone and...
authorAnthony Talarico <talarico@gaslightmedia.com>
Mon, 7 Nov 2016 19:43:59 +0000 (14:43 -0500)
committerAnthony Talarico <talarico@gaslightmedia.com>
Mon, 7 Nov 2016 19:43:59 +0000 (14:43 -0500)
functions.php
lib/partners-post-type.php [new file with mode: 0644]

index d4358de..a2ba797 100644 (file)
@@ -2,6 +2,7 @@
 require_once 'lib/menu-walker.php';
 require_once 'lib/navigation.php';
 require_once 'parts/glm-blocks.php';
+require_once 'lib/partners-post-type.php';
 
 $ancestorId   = null;
 $includePages = array();
diff --git a/lib/partners-post-type.php b/lib/partners-post-type.php
new file mode 100644 (file)
index 0000000..9082a92
--- /dev/null
@@ -0,0 +1,217 @@
+<?php
+define( 'GLM_POST_TYPE', 'partners' );
+// Register Custom Post Type
+function custom_post_type() {
+
+       $labels = array(
+               'name'                  => _x( 'Partners', 'Post Type General Name', 'text_domain' ),
+               'singular_name'         => _x( 'Partner', 'Post Type Singular Name', 'text_domain' ),
+               'menu_name'             => __( 'Partners', 'text_domain' ),
+               'name_admin_bar'        => __( 'Partners', 'text_domain' ),
+               'archives'              => __( 'Partner Archives', 'text_domain' ),
+               'parent_item_colon'     => __( 'Parent Item:', 'text_domain' ),
+               'all_items'             => __( 'All Partners', 'text_domain' ),
+               'add_new_item'          => __( 'Add New Partner', 'text_domain' ),
+               'add_new'               => __( 'Add New', 'text_domain' ),
+               'new_item'              => __( 'New Item', 'text_domain' ),
+               'edit_item'             => __( 'Edit Item', 'text_domain' ),
+               'update_item'           => __( 'Update Item', 'text_domain' ),
+               'view_item'             => __( 'View Item', 'text_domain' ),
+               'search_items'          => __( 'Search Partners', 'text_domain' ),
+               'not_found'             => __( 'Not found', 'text_domain' ),
+               'not_found_in_trash'    => __( 'Not found in Trash', 'text_domain' ),
+               'featured_image'        => __( 'Featured Image', 'text_domain' ),
+               'set_featured_image'    => __( 'Set featured image', 'text_domain' ),
+               'remove_featured_image' => __( 'Remove featured image', 'text_domain' ),
+               'use_featured_image'    => __( 'Use as featured image', 'text_domain' ),
+               'insert_into_item'      => __( 'Insert into item', 'text_domain' ),
+               'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ),
+               'items_list'            => __( 'Items list', 'text_domain' ),
+               'items_list_navigation' => __( 'Items list navigation', 'text_domain' ),
+               'filter_items_list'     => __( 'Filter items list', 'text_domain' ),
+       );
+       $args = array(
+               'label'                 => __( 'Partner', 'text_domain' ),
+               'labels'                => $labels,
+               'supports'              => array('thumbnail'),
+//             'taxonomies'            => array( 'category', 'post_tag' ),
+               'hierarchical'          => false,
+               'public'                => true,
+               'show_ui'               => true,
+               'show_in_menu'          => true,
+               'menu_position'         => 5,
+               'show_in_admin_bar'     => true,
+               'show_in_nav_menus'     => true,
+               'can_export'            => true,
+               'has_archive'           => true,                
+               'exclude_from_search'   => false,
+               'publicly_queryable'    => true,
+               'capability_type'       => 'page',
+        'register_meta_box_cb'  => 'add_metaboxes',
+       );
+       register_post_type( 'partners', $args );
+
+}
+add_action( 'init', 'custom_post_type', 0 );
+
+/**
+ * Partner Name
+ *
+ * Adds the field for camper types
+ *
+ * @access public
+ * @return void
+ */
+function partner_name() {
+    global $post;
+    $nonce = wp_create_nonce( 'partners-meta-noncename' );
+    // Get the features for the post.
+    $name = get_post_meta( $post->ID, 'partner_name', true );
+    
+    // Output field.
+    if ( !empty( $name) ) {
+        $value = "value=".'"'.$name .'"';
+    }
+    ?>
+    <input type="text" name="partner_name" <?php echo $value; ?> />
+    
+    <?php
+}
+/**
+ * Partner Title
+ *
+ * Adds the field for camper types
+ *
+ * @access public
+ * @return void
+ */
+function partner_title() {
+    global $post;
+    $nonce = wp_create_nonce( 'title-meta-noncename' );
+    echo '<input type="hidden" name="title-meta-noncename" id="title-meta-noncename" value="' . $nonce . '" />';
+    // Get the features for the post.
+    $title = get_post_meta( $post->ID, 'partner_title', true );
+    
+    // Output field.
+    if ( !empty( $title) ) {
+        $value = "value=".'"'.$title .'"';
+    }
+    ?>
+    <input type="text" name="partner_title" <?php echo $value; ?> />
+    
+    <?php
+}
+/**
+ * Partner Email
+ *
+ * Adds the field for camper types
+ *
+ * @access public
+ * @return void
+ */
+function partner_email() {
+    global $post;
+    $nonce = wp_create_nonce( 'partners-meta-noncename' );
+    // Get the features for the post.
+    $email= get_post_meta( $post->ID, 'partner_email', true );
+    
+    // Output field.
+    if ( !empty( $email) ) {
+        $value = "value=".'"'.$email .'"';
+    }
+    ?>
+    <input type="text" name="partner_email" <?php echo $value; ?> />
+    
+    <?php
+}
+/**
+ * Partner Title
+ *
+ * Adds the field for camper types
+ *
+ * @access public
+ * @return void
+ */
+function partner_phone() {
+    global $post;
+    $nonce = wp_create_nonce( 'partners-meta-noncename' );
+    // Get the features for the post.
+    $phone = get_post_meta( $post->ID, 'partner_phone', true );
+    
+    // Output field.
+    if ( !empty( $phone) ) {
+        $value = "value=".'"'.$phone .'"';
+    }
+    ?>
+    <input type="text" name="partner_phone" <?php echo $value; ?> />
+    
+    <?php
+}
+/**
+ * Partner URL
+ *
+ * Adds the field for camper types
+ *
+ * @access public
+ * @return void
+ */
+function partner_url() {
+    global $post;
+    $nonce = wp_create_nonce( 'partners-meta-noncename' );
+    // Get the features for the post.
+    $url = get_post_meta( $post->ID, 'partner_url', true );
+    
+    // Output field.
+    if ( !empty( $url) ) {
+        $value = "value=".'"'.$url .'"';
+    }
+    ?>
+    <input type="text" name="partner_url" <?php echo $value; ?> />
+    
+    <?php
+}
+/**
+ * Save Meta Data
+ *
+ * Saves the meta fields for the product
+ *
+ * @access public
+ * @return void
+ */
+function save_meta() {
+    global $post;
+    if ( ! wp_verify_nonce( $_POST['title-meta-noncename'], 'title-meta-noncename' ) ) {
+        return $post->ID;
+    }
+    if ( ! current_user_can( 'edit_post', $post->ID ) ) {
+        return $post->ID;
+    }
+    $name         = filter_var( $_POST['partner_name'] );
+    $title        = filter_var( $_POST['partner_title'] );
+    $email        = filter_var( $_POST['partner_email'] );
+    $phone        = filter_var( $_POST['partner_phone'] );
+    $url          = filter_var( $_POST['partner_url'] );
+
+    update_post_meta( $post->ID, 'partner_name', $name );
+    update_post_meta( $post->ID, 'partner_title', $title );
+    update_post_meta( $post->ID, 'partner_email', $email );
+    update_post_meta( $post->ID, 'partner_phone', $phone );
+    update_post_meta( $post->ID, 'partner_url', $url );
+}
+
+/**
+ * add_metaboxes
+ *
+ * Add the meta fields
+ *
+ * @access public
+ * @return void
+ */
+function add_metaboxes() {
+    add_meta_box( 'partner_name', 'Name', 'partner_name', GLM_POST_TYPE, 'normal', 'low' );
+    add_meta_box( 'partner_title', 'Title', 'partner_title', GLM_POST_TYPE, 'normal', 'low' );
+    add_meta_box( 'partmer_email', 'Email', 'partner_email', GLM_POST_TYPE, 'normal', 'low' );
+    add_meta_box( 'partner_phone', 'Phone', 'partner_phone', GLM_POST_TYPE, 'normal', 'low' );
+    add_meta_box( 'partner_url', 'URL', 'partner_url', GLM_POST_TYPE, 'normal', 'low' );
+}
+add_action( 'save_post', 'save_meta' );
\ No newline at end of file