Add the below code in function.php file

My Post Type Slug: products

/* Add Custom order in Custom Post Type */
function sm_custom_post_sort( $post ){
  add_meta_box( 
    'custom_post_sort_box', 
    'Position in List of Products', 
    'sm_custom_post_order', 
    'products' ,
    'side'
    );
}
add_action( 'add_meta_boxes', 'sm_custom_post_sort' );

function sm_custom_post_order( $post ) {
  wp_nonce_field( basename( __FILE__ ), 'sm_custom_post_order_nonce' );
  $current_pos = get_post_meta( $post->ID, '_custom_post_order', true); ?>
  

Enter the position at which you would like the products to appear. For exampe, products "1" will appear first, products "2" second, and so forth.

<input type="number" name="pos" value="<?php echo $current_pos; ?>" />

<?php } /* Save the input to post_meta_data */ function sm_save_custom_post_order( $post_id ){ if ( !isset( $_POST['sm_custom_post_order_nonce'] ) || !wp_verify_nonce( $_POST['sm_custom_post_order_nonce'], basename( __FILE__ ) ) ){ return; } if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ){ return; } if ( ! current_user_can( 'edit_post', $post_id ) ){ return; } if ( isset( $_REQUEST['pos'] ) ) { update_post_meta( $post_id, '_custom_post_order', sanitize_text_field( $_POST['pos'] ) ); } } add_action( 'save_post', 'sm_save_custom_post_order' ); /* Add custom post order column to post list */ function sm_add_custom_products_post_order_column( $columns ){ return array_merge ( $columns, array( 'pos' => 'Position', )); } add_filter('manage_products_posts_columns' , 'sm_add_custom_products_post_order_column'); /* Display custom post order in the post list */ function sm_custom_products_post_order_value( $column, $post_id ){ if ($column == 'pos' ){ echo '

' . get_post_meta( $post_id, '_custom_post_order', true) . '

'; } } add_action( 'manage_products_posts_custom_column' , 'sm_custom_products_post_order_value' , 10 , 2 ); /* Sort posts on the blog posts page according to the custom sort order */ function sm_custom_post_order_sort( $query ){ if ( $query->is_main_query() && is_home() ){ $query->set( 'orderby', 'meta_value' ); $query->set( 'meta_key', '_custom_post_order' ); $query->set( 'order' , 'ASC' ); } } add_action( 'pre_get_posts' , 'sm_custom_post_order_sort' );

How to Fetch “custom_post_order” in Front Side?

<!-- Products Section Start Here -->                       
<?php
$products_type = 'products';
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

$products_args=array(
	'type'                     => $products_type,
	'post_status' 			   => 'publish',
	'posts_per_page' 		   => 4,
	'paged' 				   => $paged, 
	'caller_get_posts'         => -1,
	'child_of'                 => 0,
	'parent'                   => 0,
	'meta_key' 				   => '_custom_post_order',
	'orderby' 				   => 'meta_value',
	'order' 				   => 'ASC',
	'hide_empty'               => 0,
	'hierarchical'             => 1,
	'exclude'                  => '',
	'include'                  => '',
	'number'                   => '',
	'tax_query' 			   => array(
										array(
											'taxonomy' => 'product-category',
											'field' => 'id',
											'terms' => $product_category_term_id
										)
									),
	'pad_counts'               => false 
);
$products_my_query = null;
$products_my_query = new WP_Query($products_args);

if( $products_my_query->have_posts() ) 
{
	while ($products_my_query->have_posts()) : $products_my_query->the_post(); 
	$product_description = get_the_excerpt($post->ID);
	?>
	<div class="product_box">
	<div class="news_and_eve">
	<?php the_title( '<h1>', '</h1>' );?>
	</div>
	<div class="product_content">
	<?php
	if ( has_post_thumbnail() ) {
		   ?>
			 <div class="image_cont"><?php echo  get_the_post_thumbnail($post->ID,"thumbnail"); //thumbnail,medium,large,full,array(100,100)?></div>
		   <?php
		}
	?>
	<?php echo $product_description; ?>
	</div>
	<!-- Read more Here -->
	<div class="read_more_btn">
   <a href="<?php echo get_permalink(); ?>">Read More...</a>
	</div>
	</div>
	<?php
	   endwhile;
}
wp_reset_query($products_my_query);
?>
<?php if(function_exists('wp_pagenavi')) { wp_pagenavi( array( 'query' => $products_my_query ) ); }else{ echo "No Products Found.";}?>
<!-- Products Section Start Here -->