طریقه صحیح استفاده از تابع wp_redirect

پرسیده شده
فعالیت 1064 روز پیش
دیده شده 407 بار
0

سلام استاد علی محمدی

لطفاً طریقه صحیح استفاده  از تابع wp_redirect را بگید.

به طوری که پس از ثبت ، به لیست مطالب بره.

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

 

 

 

فایل پیوست

احمد اسماعیلی
احمد اسماعیلی

15 خرداد 00

0
حذف شده

سلام مجدد استاد. من به این صورت عمل کردم لطفا نگاه کنید ببینید درسته؟؟ البته سرچ کردم و این رو پیدا کردم ولی واقعا نمیدونم علتش چیه و دقیقا چیکار میکنه این تابع . 

اگه درسته لطفا برام توضیح بدید عملکردش رو.

 

من بعد از تابع insert این چند خط رو گذاشتم:

ob_clean();
$redirect = site_url('/wp-admin/admin.php?page=wp_apis_admin');
wp_redirect( $redirect );
exit;

و در آخر فایل این تایع و اکشن رو گذاشتم:

function my_custom_redirect() {
	ob_start();
}
add_action('init', 'my_custom_redirect');

کاملش رو در پایین گذاشتم:

<!--menus.php-->

<?php
function wp_apis_register_menus() {
	add_menu_page(
		'پلاگین سفارشی',
		'پلاگین سفارشی',
		'manage_options',
		'wp_apis_admin',
		'wp_apis_main_menu_handler'
	);
	add_submenu_page(
		'wp_apis_admin',
		'تنظیمات',
		'تنظیمات',
		'manage_options',
		'wp_apis_general',
		'wp_apis_general_page'
	);
}

function wp_apis_main_menu_handler() {
	global $wpdb;
	if ( isset( $_GET['action'] ) ) {
		$action = $_GET['action'];

		if ( $action == "delete" ) {
			$item = intval( $_GET['item'] );
			if ( $item > 0 ) {
				$wpdb->delete( $wpdb->prefix . 'sample', [ 'ID' => $item ] );
			}
		}

		if ( $action == "add" ) {
			if ( isset( $_POST['saveData'] ) ) {
				$wpdb->insert( $wpdb->prefix . 'sample', [
					'firstName' => $_POST['firstName'],
					'lastName'  => $_POST['lastName'],
					'mobile'    => $_POST['mobile']
				] );
				ob_clean();
				$redirect = site_url('/wp-admin/admin.php?page=wp_apis_admin');
				wp_redirect( $redirect );
				exit;
			}
			include WP_APIS_TPL . '/admin/menus/add.php';
		} else {
			$samples = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}sample" );
			include WP_APIS_TPL . '/admin/menus/main.php';
		}
	} else {
		$samples = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}sample" );
		include WP_APIS_TPL . '/admin/menus/main.php';
	}
}

function wp_apis_general_page() {
	if ( isset( $_POST['saveSetting'] ) ) {
		if ( isset( $_POST['is_plugin_active'] ) ) {
			update_option( 'wp_apis_is_active', 1 );
		} else {
			delete_option( 'wp_apis_is_active' );
		}

	}
	$current_plugin_status = get_option( 'wp_apis_is_active', 0 );
	include WP_APIS_TPL . '/admin/menus/general.php';
}

add_action( 'admin_menu', 'wp_apis_register_menus' );

function my_custom_redirect() {
	ob_start();
}
add_action('init', 'my_custom_redirect');

درست کار میکنه و مشکلی نداره. ولی همونجور که گفتم مطمئن نیستم از لحاظ استاندارد درسته یا نه؟ و یا عملکردش چیه؟

فایل پیوست

احمد اسماعیلی

توسط

احمد اسماعیلی

15 خرداد 00