رفتن به مطلب

جلوگیری از ترجمه شدن slug بطور خودکار


پست های پیشنهاد شده

بخشی در سایت من وجود داره برای لیست کرده دوره های حضوری.

خود سایت کلمه event رو به رویداد ترجمه میکنه و باعث میشه لینکها به این صورت دربیاد:

site.com/رویداد

در حالی که میخوام لینک باید به این صورت باشه:

site.com/events

فایلی که مربوط به افزونه هست رو اینجا قرار دادم، در خط 49 کافیه روبروی slug کلمه events رو به یه چیز دیگه مثلا allevents عوض کنم ولی مشکل اینجاس که با اینکار ، سایر بخش های سایت بهم میخوره و این رویدادها توی صفحاتی که باید نمایش داده بشن نمایش داده نمیشه.

مثل لینک سایت صفحات انگلیسی میخوام لینک (slug) صفحه event ها انگلیسی باشه و اتوماتیک ترجمه نشه.

ممنون میشم دوستانی که تجربه دارن راهنمایی کنن

<?php

/**
 * register all post type
 */
class TP_Event_Post_Type
{

	public function __construct()
	{
		add_action( 'init', array( $this, 'register_post_type' ) );
		add_action( 'init', array( $this, 'register_post_status' ) );
		add_filter( 'manage_tp_event_posts_columns', array( $this, 'column_filter' ) );
		add_action( 'manage_tp_event_posts_custom_column' , array( $this, 'column_action' ), 10, 2 );

		// filter nav-menu
		add_filter( 'nav_menu_meta_box_object', array( $this, 'nav_menu_event' ) );
	}

	// register post type hook callback
	function register_post_type()
	{
		// post type
		$labels = array(
			'name'               => _x( 'Events', 'post type general name', 'tp-event' ),
			'singular_name'      => _x( 'Event', 'post type singular name', 'tp-event' ),
			'menu_name'          => _x( 'Events', 'admin menu', 'tp-event' ),
			'name_admin_bar'     => _x( 'Event', 'add new on admin bar', 'tp-event' ),
			'add_new'            => _x( 'Add New', 'event', 'tp-event' ),
			'add_new_item'       => __( 'Add New Event', 'tp-event' ),
			'new_item'           => __( 'New Event', 'tp-event' ),
			'edit_item'          => __( 'Edit Event', 'tp-event' ),
			'view_item'          => __( 'View Event', 'tp-event' ),
			'all_items'          => __( 'All Events', 'tp-event' ),
			'search_items'       => __( 'Search Events', 'tp-event' ),
			'parent_item_colon'  => __( 'Parent Events:', 'tp-event' ),
			'not_found'          => __( 'No events found.', 'tp-event' ),
			'not_found_in_trash' => __( 'No events found in Trash.', 'tp-event' )
		);

		$args = array(
			'labels'             => $labels,
            'description'        => __( 'Event post type.', 'tp-event' ),
			'public'             => true,
			'publicly_queryable' => true,
			'show_ui'            => true,
			'show_in_menu'       => true,
			'query_var'          => true,
			'rewrite'            => array( 'slug' => _x( 'events', 'URL slug', 'tp-event' ) ),
			'capability_type'    => 'tp_event',
			'map_meta_cap'		 => true,
			'has_archive'        => true,
			'hierarchical'       => false,
			'menu_position'      => 8,
			'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
		);

		$args = apply_filters( 'tp_event_register_event_post_type_args', $args );
		register_post_type( 'tp_event', $args );
	}

	public function register_post_status()
	{
		// post status // upcoming // expired // happenning
		$args = apply_filters( 'tp_event_register_upcoming_status_args', array(
			'label'                     => _x( 'Upcoming', 'tp-event' ),
			'public'                    => true,
			'exclude_from_search'       => false,
			'show_in_admin_all_list'    => true,
			'show_in_admin_status_list' => true,
			'label_count'               => _n_noop( 'Upcoming <span class="count">(%s)</span>', 'Upcoming <span class="count">(%s)</span>' ),
		));
		register_post_status( 'tp-event-upcoming', $args);

		$args = apply_filters( 'tp_event_register_happening_status_args', array(
			'label'                     => _x( 'Happenning', 'tp-event' ),
			'public'                    => true,
			'exclude_from_search'       => false,
			'show_in_admin_all_list'    => true,
			'show_in_admin_status_list' => true,
			'label_count'               => _n_noop( 'Happenning <span class="count">(%s)</span>', 'Happenning <span class="count">(%s)</span>' ),
		));
		register_post_status( 'tp-event-happenning', $args );

		$args = apply_filters( 'tp_event_register_expired_status_args', array(
			'label'                     => _x( 'Expired', 'tp-event' ),
			'public'                    => true,
			'exclude_from_search'       => false,
			'show_in_admin_all_list'    => true,
			'show_in_admin_status_list' => true,
			'label_count'               => _n_noop( 'Expired <span class="count">(%s)</span>', 'Expired <span class="count">(%s)</span>' ),
		));
		register_post_status( 'tp-event-expired', $args );
	}

	public function column_filter( $columns )
	{
		$columns['tp_event_status'] = __( 'Event Status', 'tp-event' );
		return $columns;
	}

	public function column_action( $column, $post_id )
	{
		switch ( $column ) {

	        case 'tp_event_status' :
					$status = get_post_status_object( get_post_status( $post_id) );
					echo $status->label;
				break;

    	}
	}

	function nav_menu_event( $object = null ) {

		if ( isset( $object->name ) && $object->name === 'tp_event' ) {

			// default query
			$object->_default_query = array(
				'post_status' => array(
						'tp-event-upcoming',
						'tp-event-happenning',
						'tp-event-expired'
					)
			);
		}

		return $object;
	}

}

new TP_Event_Post_Type();

 

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...