<?php





// Meta Fields


function porto_post_meta_fields() {





    // Slideshow Types


    $slideshow_types = porto_ct_slideshow_types();





    return array(


        // Slideshow Type


        'slideshow_type' => array(


            'name' => 'slideshow_type',


            'title' => __('Slideshow Type', 'porto'),


            'type' => 'radio',


            'default' => 'images',


            'options' => $slideshow_types


        ),


        // Video & Audio Embed Code


        'video_code' => array(


            'name' => 'video_code',


            'title' => __('Video & Audio Embed Code or Content', 'porto'),


            'desc' => __('Paste the iframe code of the Flash (YouTube or Vimeo etc) or Input the shortcodes. Only necessary when the member type is Video & Audio.', 'porto'),


            'type' => 'textarea',


            'required' => array(


                'name' => 'slideshow_type',


                'value' => 'video'


            ),


        ),


        // External URL


        'external_url' => array(


            'name' => 'external_url',


            'title' => __('External URL', 'porto'),


            'desc' => __('Input website url if post format is link.', 'porto'),


            'type' => 'text'


        ),


        // Layout


        'post_layout' => array(


            'name' => 'post_layout',


            'title' => __('Post Layout', 'porto'),


            'type' => 'radio',


            'default' => 'default',


            'options' => array_merge(


                array(


                    'default' => __('Default', 'porto')


                ),


                porto_ct_post_single_layouts()


            )


        ),


        // Share


        'post_share' => array(


            'name' => 'post_share',


            'title' => __('Share', 'porto'),


            'type' => 'radio',


            'default' => '',


            'options' => porto_ct_share_options()


        ),
		
		// Like Count

        'like_count'=> array(

            'name' => 'like_count',

            'title' => __('Like Count', 'porto'),

            'type' => 'text',

            'default' => __('0', 'porto')

        ),



    );


}





function porto_post_view_meta_fields() {


    $meta_fields = porto_ct_default_view_meta_fields();


    // Layout


    $meta_fields['layout']['default'] = 'right-sidebar';


    return $meta_fields;


}





function porto_post_skin_meta_fields() {


    $meta_fields = porto_ct_default_skin_meta_fields();


    return $meta_fields;


}





// Show Meta Boxes


add_action('add_meta_boxes', 'porto_add_post_meta_boxes');


function porto_add_post_meta_boxes() {


    if (!function_exists('get_current_screen')) return;


    global $porto_settings;


    $screen = get_current_screen();


    if ( function_exists('add_meta_box') && $screen && $screen->base == 'post' && $screen->id == 'post' ) {


        add_meta_box( 'post-meta-box', __('Post Options', 'porto'), 'porto_post_meta_box', 'post', 'normal', 'high' );


        add_meta_box( 'view-meta-box', __('View Options', 'porto'), 'porto_post_view_meta_box', 'post', 'normal', 'low' );


        if ($porto_settings['show-content-type-skin']) {


            add_meta_box( 'skin-meta-box', __('Skin Options', 'porto'), 'porto_post_skin_meta_box', 'post', 'normal', 'low' );


        }


    }


}





function porto_post_meta_box() {


    $meta_fields = porto_post_meta_fields();


    porto_show_meta_box($meta_fields);


}





function porto_post_view_meta_box() {


    $meta_fields = porto_post_view_meta_fields();


    porto_show_meta_box($meta_fields);


}





function porto_post_skin_meta_box() {


    $meta_fields = porto_post_skin_meta_fields();


    porto_show_meta_box($meta_fields);


}





// Save Meta Values


add_action('save_post', 'porto_save_post_meta_values');


function porto_save_post_meta_values( $post_id ) {


    if (!function_exists('get_current_screen')) return;


    $screen = get_current_screen();


    if ($screen && $screen && $screen->base == 'post' && $screen->id == 'post') {


        porto_save_meta_value( $post_id, porto_post_meta_fields() );


        porto_save_meta_value( $post_id, porto_post_view_meta_fields() );


        porto_save_meta_value( $post_id, porto_post_skin_meta_fields() );


    }


}





// Remove in default custom field meta box


add_filter('is_protected_meta', 'porto_post_protected_meta', 10, 3);


function porto_post_protected_meta($protected, $meta_key, $meta_type) {


    if (!function_exists('get_current_screen')) return $protected;


    $screen = get_current_screen();


    if (!$protected && $screen && $screen->base == 'post' && $screen->id == 'post') {


        if (array_key_exists($meta_key, porto_post_meta_fields())


            || array_key_exists($meta_key, porto_post_view_meta_fields())


            || array_key_exists($meta_key, porto_post_skin_meta_fields()))


            $protected = true;


    }


    return $protected;


}





////////////////////////////////////////////////////////////////////////





// Taxonomy Meta Fields


function porto_category_meta_fields() {


    global $porto_settings;





    $meta_fields = porto_ct_default_view_meta_fields();





    // Post Options


    $meta_fields = array_insert_before('loading_overlay', $meta_fields, 'post_options', array(


        'name' => 'post_options',


        'title' => __('Archive Options', 'porto'),


        'desc' => __('Change default theme options.', 'porto'),


        'type' => 'checkbox'


    ));





    // Infinite Scroll


    $meta_fields = array_insert_after('post_options', $meta_fields, 'post_infinite', array(


        'name' => 'post_infinite',


        'title' => __('Infinite Scroll', 'porto'),


        'desc' => __('Disable infinite scroll.', 'porto'),


        'type' => 'checkbox',


        'required' => array(


            'name' => 'post_options',


            'value' => 'post_options'


        ),


    ));





    // Layout


    $meta_fields = array_insert_after('post_infinite', $meta_fields, 'post_layout', array(


        'name' => 'post_layout',


        'title' => __('Post Layout', 'porto'),


        'type' => 'radio',


        'default' => 'large',


        'options' => porto_ct_post_archive_layouts(),


        'required' => array(


            'name' => 'post_options',


            'value' => 'post_options'


        ),


    ));


    // Grid Columns


    $meta_fields = array_insert_after('post_layout', $meta_fields, 'post_grid_columns', array(


        'name' => 'post_grid_columns',


        'title' => __('Grid Columns', 'porto'),


        'desc' => __('Select the post columns in <strong>Grid</strong> layout.', 'porto'),


        'type' => 'radio',


        'default' => '3',


        'options' => array(


            '2' => __('2 Columns', 'porto'),


            '3' => __('3 Columns', 'porto'),


            '4' => __('4 Columns', 'porto')


        ),


        'required' => array(


            'name' => 'post_options',


            'value' => 'post_options'


        ),


    ));





    if (isset($porto_settings['show-category-skin']) && $porto_settings['show-category-skin']) {


        $meta_fields = array_merge($meta_fields, porto_ct_default_skin_meta_fields(true));


    }





    return $meta_fields;


}





$taxonomy = 'category';


$table_name = $wpdb->prefix . $taxonomy . 'meta';


$variable_name = $taxonomy . 'meta';


$wpdb->$variable_name = $table_name;





// Add Meta Fields when edit taxonomy


add_action( 'category_edit_form_fields', 'porto_edit_category_meta_fields', 100, 2);


function porto_edit_category_meta_fields($tag, $taxonomy) {


    if ($taxonomy !== 'category') return;


    porto_edit_tax_meta_fields( $tag, $taxonomy, porto_category_meta_fields() );


}





// Save Meta Values


add_action( 'edit_term', 'porto_save_category_meta_values', 100, 3 );


function porto_save_category_meta_values($term_id, $tt_id, $taxonomy) {


    if ($taxonomy !== 'category') return;


    porto_create_tax_meta_table($taxonomy);


    return porto_save_tax_meta_values( $term_id, $taxonomy, porto_category_meta_fields() );


}





// Delete Meta Values


add_action( 'delete_term', 'porto_delete_category_meta_values', 10, 5);


function porto_delete_category_meta_values($term_id, $tt_id, $taxonomy, $deleted_term, $object_ids) {


    if ($taxonomy !== 'category') return;


    return porto_delete_tax_meta_values( $term_id, $taxonomy, porto_category_meta_fields() );


}


