Change url slug Package item

How can I change the slug url of package pages?

Example:

https://pacotesviagens.com.br/package/fortaleza-jericoacoara-2018

TO

https://pacotesviagens.com.br/pacotes/fortaleza-jericoacoara-2018

You can do it something like this

$args = array( 'rewrite'  => array( 'slug' => 'pacotes', 'with_front' => TRUE ) );
register_post_type( 'packages', $args );

https://codex.wordpress.org/Function_Reference/register_post_type

2 Likes

In which theme file do I have to change this?

I believe your Custom Post Type is a plugin. You need to open it in this folders “wp-content/plugins” and open the name of your plugin. It’s very easy if your CPT plugin supports option to change this in the plugin settings.

I did this, but you have this error: See

https://pacotesviagens.com.br/pacotes/fortaleza-jericoacoara-2018

<?php

/*	
*	Goodlayers Package Option File
*	---------------------------------------------------------------------
* 	@version	1.0
* 	@author		Goodlayers
* 	@link		http://goodlayers.com
* 	@copyright	Copyright (c) Goodlayers
*	---------------------------------------------------------------------
*	This file create and contains the price table post_type meta elements
*	---------------------------------------------------------------------
*/

add_action( 'init', 'create_package_post' );
function create_package_post() {
	$package_translation = get_option(THEME_SHORT_NAME.'_package_slug','package');
	
	$labels = array(
		'name' => __('Package', 'gdl_back_office'),
		'singular_name' => __('Package Item', 'gdl_back_office'),
		'add_new' => __('Add New Package', 'gdl_back_office'),
		'add_new_item' => __('Add New Package', 'gdl_back_office'),
		'edit_item' => __('Edit Package', 'gdl_back_office'),
		'new_item' => __('New Package', 'gdl_back_office'),
		'view_item' => __('View Package', 'gdl_back_office'),
		'search_items' => __('Search Package', 'gdl_back_office'),
		'not_found' =>  __('Nothing found', 'gdl_back_office'),
		'not_found_in_trash' => __('Nothing found in Trash', 'gdl_back_office'),
		'parent_item_colon' => ''
	);
	
	$args = array(
		'labels' => $labels,
		'public' => true,
		'publicly_queryable' => true,
		'show_ui' => true,
		'query_var' => true,
		'rewrite' => true,
		'capability_type' => 'post',
		'hierarchical' => false,
		'menu_position' => 5,
		'supports' => array('title','editor','author','thumbnail','excerpt','comments','custom-fields'),
		'rewrite' => array( 'slug' => 'pacotes', 'with_front' => TRUE ) 
		
		);
		
	 
	register_post_type( 'package' , $args);
	
	register_taxonomy(
		"package-category", array("package"), array(
			"hierarchical" => true,
			"label" => "Package Categories", 
			"singular_label" => "Package Categories", 
			"rewrite" => true));
	register_taxonomy_for_object_type('package-category', 'package');
	
	register_taxonomy(
		"package-tag", array("package"), array(
			"hierarchical" => false, 
			"label" => "Package Tag", 
			"singular_label" => "Package Tag", 
			"rewrite" => true));
	register_taxonomy_for_object_type('package-tag', 'package');
	
}

// add price table in edit page
add_filter("manage_edit-package_columns", "show_package_column");	
function show_package_column($columns){
	$columns = array(
		"cb" => "<input type=\"checkbox\" />",
		"title" => "Title",
		"author" => "Author",
		"package-category" => "Package Categories",
		"date" => "date");
	return $columns;
}
add_action("manage_posts_custom_column","package_custom_columns");
function package_custom_columns($column){
	global $post;

	switch ($column) {
		case "package-category":
		$first = true;
		$terms = get_the_terms($post->ID, 'package-category');
		if(!empty($terms)){
			foreach( $terms as $term ){
				echo '<a href="edit.php?package-category=' . $term->slug . '&post_type=package">' . $term->name . '</a>';
				echo ($first)? ',': '';
				$first = false;
			}	
		}			
		//echo get_the_term_list($post->ID, 'package-category', '', ', ','');
		break;
	}
}

$package_meta_boxes = array(	
	// general options
	"Sidebar Template" => array(
		'title'=> __('SIDEBAR TEMPLATE', 'gdl_back_office'), 
		'name'=>'post-option-sidebar-template', 
		'type'=>'radioimage', 
		'default'=>$default_post_sidebar,
		'hr'=>'none',
		'options'=>array(
			'1'=>array('value'=>'right-sidebar','default'=>'selected','image'=>'/include/images/right-sidebar.png'),
			'2'=>array('value'=>'left-sidebar','image'=>'/include/images/left-sidebar.png'),
			'3'=>array('value'=>'both-sidebar','image'=>'/include/images/both-sidebar.png'),
			'4'=>array('value'=>'no-sidebar','image'=>'/include/images/no-sidebar.png'))),

	"Choose Left Sidebar" => array(
		'title'=> __('CHOOSE LEFT SIDEBAR', 'gdl_back_office'),
		'name'=>'post-option-choose-left-sidebar',
		'type'=>'combobox',
		'hr'=>'none'
	),		
	
	"Choose Right Sidebar" => array(
		'title'=> __('CHOOSE RIGHT SIDEBAR', 'gdl_back_office'),
		'name'=>'post-option-choose-right-sidebar',
		'type'=>'combobox'
	),	
	
	"Blog Caption" => array(
		'title'=> __('PAGE HEADER CAPTION', 'gdl_back_office'),
		'name'=>'post-option-blog-header-caption',
		'type'=>'textarea'
	),		

	"Inside Thumbnail" => array(
		'title'=> __('INSIDE PACKAGE THUMBNAIL', 'gdl_back_office'),
		'name'=>'post-option-inside-thumbnail',
		'type'=>'upload'
	),			
	
	"Book Now Link" => array(
		'title'=> __('Book Now Shortcode / Link', 'gdl_back_office'),
		'name'=>'post-option-book-now-link',
		'type'=>'textarea',
		'description'=>'Fill the link ( with http:// at the front) if you want the button to link to specific url'
	),		

	"Available Number" => array(
		'title'=> __('Available Number', 'gdl_back_office'),
		'name'=>'post-option-available-num',
		'type'=>'inputtext',
		'default'=> '-1',
		'description'=>'Only number is allowed here, use "zero" instead of 0 and -1 means to ignore the available number. <br> This option will be reduce after user made payment via paypal ( if the paypal account is correctly set )'
	),		
	
	"Inside Thumbnail Link" => array(
		'title'=> __('INSIDE PACKAGE THUMBNAIL LINK', 'gdl_back_office'),
		'name'=>'post-option-inside-thumbnail-link',
		'type'=>'inputtext'
	),			
	
	"Social Sharing" => array(
		'title'=> __('SOCIAL NETWORK SHARING', 'gdl_back_office'),
		'name'=>'post-option-social-enabled',
		'type'=>'combobox', 
		'options'=>array('0'=>'Yes','1'=>'No')),		

	"Date Type" => array(
		'title'=>__('DATE TYPE','gdl_back_office'),
		'name'=>'package-date-type',
		'type'=>'combobox',
		'options'=> array('None', 'Fixed', 'Duration'),
		'hr'=>'none'),	
		
	"Start Date" => array(
		'title'=>__('START DATE','gdl_back_office'),
		'name'=>'package-start-date',
		'meta_body'=>'package-start-date',
		'type'=>'datepicker',
		'hr'=>'none'),
		
	"End Date" => array(
		'title'=>__('END DATE','gdl_back_office'),
		'name'=>'package-end-date',
		'meta_body'=>'package-end-date',
		'type'=>'datepicker',
		'hr'=>'none'),		
		
	"Duration" => array(
		'title'=>__('DURATION','gdl_back_office'),
		'name'=>'package-duration',
		'meta_body'=>'package-duration',
		'type'=>'inputtext'),	
		
	"Price" => array(
		'title'=>__('PRICE','gdl_back_office'),
		'name'=>'package-price',
		'type'=>'inputtext'),	
		
	"Location" => array(
		'title'=>__('Location','gdl_back_office'),
		'name'=>'package-location',
		'type'=>'textarea'),				
		
	"Package Type" => array(
		'title'=>__('RIBBON TYPE','gdl_back_office'),
		'name'=>'package-type',
		'options'=> array('Learn More', 'Last Minute', 'None'),
		'type'=>'combobox',
		'hr'=>'none'),
		
	"Package Type Text" => array(
		'title'=>__('RIBBON DISCOUNT TEXT','gdl_back_office'),
		'name'=>'package-type-text',
		'meta_body'=>'package-type-text',
		'type'=>'inputtext',
		'hr'=>'none'),			

	"Last Minute Widget Text" => array(
		'title'=>__('DISCOUNT PRICE','gdl_back_office'),
		'name'=>'package-last-minute-widget-text',
		'meta_body'=>'package-type-text',
		'type'=>'inputtext'),	
);

add_action('add_meta_boxes', 'add_package_option');
function add_package_option(){	

	add_meta_box('package-option', __('Package Option','gdl_back_office'), 'add_package_option_element',
		'package', 'normal', 'high');
		
}

function add_package_option_element(){

	global $post, $package_meta_boxes;

	// init array
	$package_meta_boxes['Choose Left Sidebar']['options'] = get_sidebar_name();
	$package_meta_boxes['Choose Right Sidebar']['options'] = $package_meta_boxes['Choose Left Sidebar']['options'];		
	
	echo '<div id="gdl-overlay-wrapper">';
	
	?> <div class="testimonial-option-meta" id="testimonial-option-meta"> <?php
	
		set_nonce();
		
		foreach($package_meta_boxes as $meta_box){

			$meta_box['value'] = get_post_meta($post->ID, $meta_box['name'], true);
			print_meta($meta_box);
			
			if( empty($meta_box['hr']) ){
				echo '<hr class="separator mt20" />';
			}
		}
		
	?> </div> <?php
	
	echo '</div>';
	
}

function save_package_option_meta($post_id){

	global $package_meta_boxes;
	$edit_meta_boxes = $package_meta_boxes;
	
	// save
	foreach ($edit_meta_boxes as $edit_meta_box){
	
		if(isset($_POST[$edit_meta_box['name']])){	
			$new_data = stripslashes($_POST[$edit_meta_box['name']]);		
		}else{
			$new_data = '';
		}
		
		$old_data = get_post_meta($post_id, $edit_meta_box['name'],true);
		save_meta_data($post_id, $new_data, $old_data, $edit_meta_box['name']);
		
	}
	
	// Discount price
	if( !empty($_POST['package-last-minute-widget-text']) && ($_POST['package-type'] == 'Last Minute') ){
		$old_data = get_post_meta($post_id, 'package-min-price',true);
		$price = preg_replace("/[^0-9\.]/", "",$_POST['package-last-minute-widget-text']);
		save_meta_data($post_id, $price, $old_data, 'package-min-price');	
	}else{
		$old_data = get_post_meta($post_id, 'package-min-price',true);
		$price = preg_replace("/[^0-9\.]/", "",$_POST['package-price']);
		save_meta_data($post_id, $price, $old_data, 'package-min-price');	
	}
}

?>

Go to your “General >> Permalinks” and then re-save it. That should work fine.

It’s work!!!

Thanks!!

1 Like

You’re Welcome!

1 Like