چطوری میشه

چگونه تم ها و افزونه های وردپرس را قابل استفاده تر کنیم

چگونه تم ها و افزونه های وردپرس را قابل استفاده تر کنیم

ساخت یک پوسته یا افزونه عالی وردپرس به همان اندازه که باعث سهولت استفاده از آن می شود، به کارایی و کدهای بهینه سازی شده مربوط می شود. هر بار که کاربران یک تم یا پلاگین را فعال می کنند و برای یافتن راه خود به تنظیمات آن و اطراف آن تلاش می کنند، در جایی از دنیا یک بچه گربه رنج می برد. خوب است اگر به آن پایان دهیم، درست است؟

خوشبختانه، تنها کاری که باید انجام دهید تا افزونه ها و تم های خود را قابل استفاده تر کنید، استفاده از قابلیت های داخلی وردپرس است. “اختراع مجدد چرخ” در لیست مهارت های مورد نیاز برای این کار نیست. بیایید نگاهی به تکنیک‌هایی بیندازیم که به کاربران کمک می‌کند راه خود را پیدا کنند و از استفاده از افزونه‌ها و طرح‌های زمینه شما ناامید شوند.

  1. نشانگرهای سرپرست
  2. اعلان‌های سرپرست
  3. راهنمای متنی
  4. پیوندهای نوار مدیریت
  5. عملیات افزونه و پیوندهای متا

نشانگرهای مدیریت

نشانگرهای مدیریت وردپرس که در وردپرس 3.3 معرفی شدند، تهاجمی‌ترین راه برای جلب توجه کاربران هستند، بنابراین دیوانه نشوید. با این حال، اگر چیزی وجود دارد که باید حتماً به افرادی که به تازگی تم یا افزونه شما را نصب/به‌روزرسانی کرده‌اند بگویید، نشانگرهای سرپرست وردپرس راه حلی هستند.

استفاده از آنها بسیار آسان است اما در وب سایت WordPress Codex مستند ضعیفی دارند. در اینجا خلاصه‌ای سریع از نحوه عملکرد نشانگرها آمده است، به دنبال آن مثالی که نشانگر را در کنار منوی تنظیمات اضافه می‌کند.

  • یک تم یا افزونه می‌تواند نشانگرهای جدیدی را ثبت کند و به هر کدام یک شناسه منحصربفرد اختصاص دهد
  • اشاره‌گرها تا زمانی که روی پیوند «نپذیرفتن» کلیک کنند به کاربران نشان داده می‌شوند
  • هنگامی که این اتفاق می افتد، شناسه اشاره گر به کلید متا dismissed_wp_pointers کاربر اضافه می شود و نشانگر دیگر نشان داده نمی شود

و مثال، همانطور که وعده داده شده بود:

/**
 * یک اشاره گر ساده وردپرس را به منوی تنظیمات اضافه می کند
 */
 
تابع thsp_enqueue_pointer_script_style($hook_suffix) {
	
	// فرض کنید نشانگر نباید نشان داده شود
	$enqueue_pointer_script_style = false;

	// دریافت لیست آرایه از اشاره گرهای رد شده برای کاربر فعلی و تبدیل آن به آرایه
	$dismissed_pointers = explode( ',', get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );

	// بررسی کنید که آیا نشانگر ما در میان موارد رد شده نیست
	if(!in_array( 'thsp_settings_pointer', $dismissed_pointers ) ) {
		$enqueue_pointer_script_style = true;
		
		// با استفاده از تابع callback اسکریپت های پاورقی را اضافه کنید
		add_action('admin_print_footer_scripts', 'thsp_pointer_print_scripts');
	}

	// در صورت نیاز، نشانگرهای CSS و JS را در صف قرار دهید
	if( $enqueue_pointer_script_style ) {
		wp_enqueue_style('wp-pointer' );
		wp_enqueue_script('wp-pointer' );
	}
	
}
add_action( 'admin_enqueue_scripts', 'thsp_enqueue_pointer_script_style' );

تابع thsp_pointer_print_scripts() {

	$pointer_content = "

به دنبال آن نباشید، اینجاست!

"; $pointer_content .= "

اگر تا به حال پلاگینی را فعال کرده اید، پس نمی دانید صفحه تنظیمات آن کجاست، دست خود را بالا ببرید.

"; ?>

که منجر به چیزی شبیه به این می شود:

WordPress admin pointer

این یک مورد ساده بود، اگر می‌خواهید درباره نشانگرهای مدیریت وردپرس بیشتر بدانید، این مقاله را در ادغام با رابط کاربری وردپرس: نشانگرهای مدیریت.

اعلان‌های سرپرست

اگر نشان‌دهنده‌های سرپرست مردی باشد که یک علامت پیکان بزرگ در جلوی یک مغازه در دست دارد، اخطارهای سرپرست همان مردی است که در یک مکان دوردست آگهی‌ها را پخش می‌کند. دقیقاً شما را به داخل نمی کشاند، اما همچنان توجه را جلب می کند. البته، شما نمی‌خواهید اعلان‌ها را همیشه نشان دهید، بنابراین باید آنها را غیرفعال کنید یا آنها را در یک تابع شرطی قرار دهید. این یک مثال است:

WordPress admin notices< /a>

/**
 * اعلامیه های مدیریت را اضافه کنید
 */
تابع thsp_admin_notices() {
	جهانی $current_user;
	$userid = $current_user->ID;
	جهانی $pagenow;
	
	// این اطلاعیه فقط در صفحه تنظیمات عمومی نشان داده می شود
	if ( $pagenow == 'options-general.php' ) {
		echo '

این یک اعلامیه "به روز شده" است.

'; } // این اعلان را فقط در صورتی نشان دهید که کاربر قبلاً آن را رد نکرده باشد // به ویژگی href لینک "نپذیرفتن" خوب نگاه کنید if ( !get_user_meta( $userid, 'ignore_sample_error_notice' ) ) { echo '

این یک اعلان "خطا" است. نپذیرفتن.

'; } } add_action('admin_notices', 'thsp_admin_notices' );

اولین اطلاعیه در این مثال فقط در صفحه تنظیمات عمومی نشان داده خواهد شد. مورد دوم فقط به کاربرانی نشان داده می شود که آن را رد نکرده اند. همانطور که می بینید، فیلد متای کاربر ignore_sample_error_notice کاربر فعلی را بررسی می کند و تنها در صورت خالی بودن آن فیلد نمایش داده می شود. پس چگونه می‌توانیم فیلد متای کاربر را هنگامی که روی «رد کردن» کلیک می‌کنند، اضافه کنیم؟ آسان:

/**
 * هنگامی که روی پیوند رد کردن کلیک می شود، مقدار متای کاربر را اضافه کنید
 */

تابع thsp_dismiss_admin_notice() {
	جهانی $current_user;
	$userid = $current_user->ID;
	
	// اگر پیوند "رد کردن" کلیک شده باشد، فیلد متای کاربر اضافه می شود
	if ( isset( $_GET['dismiss_me'] ) && 'yes' == $_GET['dismiss_me'] ) {
		add_user_meta($userid, 'ignore_sample_error_notice', 'yes', true );
	}
}
add_action('admin_init', 'thsp_dismiss_admin_notice' );

ما در حال اتصال به عملکرد admin_init هستیم و بررسی می‌کنیم که آیا پارامتر GET dismiss_me تنظیم شده است یا خیر. از آنجایی که ویژگی href برای پیوند «نپذیرفتن» ما ?dismiss_me=yes است، هنگامی که کاربر روی آن کلیک می‌کند، فیلد متای کاربر اضافه می‌شود و خداحافظی می‌کند.

راهنمای متنی

WordPress contextual help

دنیایی را تصور کنید که در آن هر مستندی که نیاز دارید، دقیقاً و تنها زمانی که به آن نیاز دارید در دسترس شماست. حالا بیایید آن را انجام دهیم.

کمک متنی نه تنها این امکان را فراهم می کند، بلکه بسیار آسان می کند. بیایید یک صفحه تنظیمات برای افزونه خود ثبت کنیم تا بتوانیم برخی از کمک های متنی به آن اضافه کنیم.

/**
 * صفحه تنظیمات را در زیر منوی تنظیمات اضافه کنید
 */
 
تابع thsp_add_settings_page() {

	جهانی $thsp_settings_page;

	$thsp_settings_page = add_options_page(
		"صفحه تنظیمات ما"،
		"صفحه تنظیمات ما"،
		'manage_Options'،
		'thsp_settings_page'،
		'thsp_show_settings_page'
	)

	// بررسی کنید که آیا نسخه WP 3.3 یا بالاتر است، کمک متنی را اضافه کنید
	جهانی $wp_version;
	if ( version_compare($wp_version, '3.3') >= 0 ) {
		add_action( 'load-' . $thsp_settings_page, 'thsp_add_help_tabs' );
	}

}
add_action('admin_menu', 'thsp_add_settings_page' );

ما با عملکرد برگشت تماس صفحه تنظیمات – thsp_show_settings_page سر و کار نخواهیم داشت، زیرا از محدوده این پست وبلاگ خارج می شود. اگر نیاز به یادگیری در مورد صفحات تنظیمات وردپرس دارید، Tom McFarlin از Wptuts+ شما را تحت پوشش قرار داده است. به هر حال، کدی که واقعاً می‌خواهیم به آن نگاهی عمیق‌تر بیندازیم این است:

// بررسی کنید که آیا نسخه WP 3.3 یا بالاتر است، کمک متنی اضافه کنید
جهانی $wp_version;
if ( version_compare($wp_version, '3.3') >= 0 ) {
	add_action( 'load-' . $thsp_settings_page, 'thsp_add_help_tabs' );
}

وردپرس 3.3 یا بالاتر مورد نیاز است، زیرا ما از عملکرد add_help_tab برای افزودن برگه های راهنمای متنی استفاده خواهیم کرد. توجه کنید که چگونه هوک مورد استفاده در add_action دارای یک متغیر است – 'load-'. $thsp_settings_page؟ این اطمینان حاصل می کند که عملکرد thsp_add_help_tabs فقط در صفحه تنظیماتی که ما به تازگی ثبت نام کرده ایم گیر می کند. درخشان.

اکنون، این تابعی است که برگه های راهنما را اضافه می کند:

/**
 * عملکرد برگشت به تماس برای کمک متنی، به WP 3.3 نیاز دارد
 */
 
تابع thsp_add_help_tabs () {

	جهانی $wp_version;
	if ( version_compare($wp_version, '3.3') >= 0 ) {
	
		جهانی $thsp_settings_page;

		$screen = get_current_screen();

		
		// بررسی کنید که آیا صفحه فعلی صفحه تنظیماتی است که ما ثبت نام کرده ایم
		// اگر نیست، تب راهنما را اضافه نکنید
		if ($screen->id != $thsp_settings_page)
			برگشت؛

		// زبانه های راهنما را اضافه کنید
		$screen->add_help_tab( آرایه(
			'id' => 'thsp_first_tab'،
			'title' => __( 'نخستین برگه'، 'thsp_contextual_help')،
			'محتوا' => __('
				

بله، حتی می‌توانید ویدیوها را جاسازی کنید، خوب است!

فقط باید بررسی کنیم که آیا نسخه وردپرس 3.3 یا بالاتر است، مطمئن شوید که در صفحه صحیح هستیم و با استفاده از تابع add_help_tab و نوار کناری راهنما را با استفاده از set_help_sidebar اضافه کنید. همه چیزهای دیگر HTML ساده هستند.

اگر نکات منفی برای کمک متنی وجود دارد این است که اکثر کاربران وردپرس حتی از آن آگاه نیستند (گزینه‌های صفحه نیز). بنابراین، شاید یک اشاره گر، برای اطمینان از اینکه آنها آن را از دست نمی دهند؟

WordPress admin bar links

اینها بسیار مفید هستند، مخصوصاً برای کاربرانی که وارد سیستم شده‌اند و در قسمت جلویی سایت‌های خود مرور می‌کنند. آنها با یک کلیک به مهمترین عملکردهای داشبورد دسترسی دارند و اگر احساس می کنید موضوع یا افزونه شما شایسته یک جایگاه در نوار مدیریت وردپرس است، انجام این کار به همین راحتی است:

/**
 * سفارشی سازی نوار مدیریت
 */

تابع thsp_admin_bar_links() {

	جهانی $wp_admin_bar;
	
	// یک زیر منوی جدید را به پیوند نوار مدیریت موجود تا سطح اضافه می کند
	$wp_admin_bar->add_menu( آرایه(
		'parent' => 'new-content',
		'id' => 'install_plugin',
		'title' => __( 'افزونه'، 'thsp_admin_bar')،
		'href' => admin_url( 'plugin-install.php')
	)))

	// یک پیوند نوار مدیریت سطح بالا و یک زیر منو به آن اضافه می کند
	$wp_admin_bar->add_menu( آرایه(
		'parent' => نادرست،
		'id' => 'custom_top_level'،
		'title' => __( 'سطح بالا'، 'thsp_admin_bar')،
		'href' => '#'
	)))
	$wp_admin_bar->add_menu( آرایه(
		'parent' => 'custom_top_level',
		'id' => 'custom_sub_menu'،
		'title' => __( 'زیر منو'، 'thsp_admin_bar')،
		'href' => '#'
	)))

	// پیوند نوار مدیریت سطح بالای موجود را حذف می کند
	$wp_admin_bar->remove_menu( 'comments' );
	
}
add_action('wp_before_admin_bar_render', 'thsp_admin_bar_links');

ما از قلاب اقدام wp_before_admin_bar_render برای اصلاح شی $wp_admin_bar قبل از رندر شدن استفاده می کنیم. مثال بالا یک منوی فرعی را به یک پیوند سطح بالای موجود (جدید)، یک پیوند سطح بالای جدید با پیوند دیگری در داخل آن اضافه می‌کند (سطح بالا، منوی فرعی) و یک پیوند سطح بالای موجود (نظرات) را حذف می‌کند.

WordPress plugin action and meta links

صفحه پلاگین های داشبورد فهرستی از همه افزونه های نصب شده را نشان می دهد. می‌توانید نام، توضیحات، نسخه، پیوندها به وب‌سایت نویسنده و افزونه و پیوندهای اقدام هر افزونه را مشاهده کنید – ترکیبی از فعال‌سازی، غیرفعال کردن، ویرایش، حذف، بسته به اینکه افزونه فعال شده باشد یا نه.

برای برخی از افزونه ها این به اندازه کافی خوب است. اما اگر افزونه شما صفحه تنظیماتی دارد، می‌خواهم دلیل خوبی برای اضافه نکردن پیوند اقدام به آن بشنوم، به خصوص اگر به این سادگی باشد:

/**
 * پیوندهای عمل را در جدول پلاگین ها اضافه کنید
 */
 
add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'thsp_plugin_action_links' );
تابع thsp_plugin_action_links($links) {

	بازگشت array_merge(
		آرایه(
			'settings' => '' . __( 'تنظیمات'، 'ts-fab'). ''
		)
		پیوندهای $
	)

}

شما باید این کد را به فایل اصلی افزونه خود (plugin-name.php) اضافه کنید تا بتوان از هوک مناسب استفاده کرد. به عنوان مثال، اگر فایل اصلی افزونه شما واقعاً plugin-name.php است، از فیلتر قلاب «plugin_action_links_plugin-name» استفاده می‌شود، مطمئن شوید که لینک‌های اقدام فقط برای افزونه شما اضافه شده است. یکی دیگر از آن لحظات جادویی وردپرس.

پیوندهای متای ردیف پلاگین کمی متفاوت هستند. نام هوک پویا نیست، بنابراین باید دو آرگومان را به تابع سفارشی خود ارسال کنید، آرایه‌ای از پیوندهای موجود و پیوندهای افزونه فعلی در حال پردازش هستند:

/**
 * لینک های متا را در جدول پلاگین ها اضافه کنید
 */
 
add_filter('plugin_row_meta', 'thsp_plugin_meta_links', 10, 2);
تابع thsp_plugin_meta_links ($links, $file ) {

	$plugin = plugin_basename(__FILE__);
	
	// ایجاد پیوند
	if ( $file == $plugin ) {
		بازگشت array_merge(
			$پیوندها،
			آرایه( 'ما را در توییتر دنبال کنید')
		)
	}
	بازگشت $links;
}

این به شما بستگی دارد که پیوندهایی را انتخاب کنید که کجا نشان داده شوند، بنابراین اگر قبلاً با اکشن افزونه و پیوندهای متا سروکار نداشته اید، فهرست پلاگین های نصب شده خود را بررسی کنید تا ببینید توسعه دهندگان دیگر چگونه این کار را انجام می دهند.

نتیجه گیری

برخی برنامه ریزی هوشمندانه، عقل سلیم و عملکردهای داخلی وردپرس می تواند شما را به مسیر طولانی برساند، اما مانند هر چیز دیگری در زندگی، اعتدال کلیدی است. تعداد زیاد نشانگرهای غیرضروری سرپرست یا پیوندهای نوار مدیریت می تواند ناامید کننده باشد.

برای ساختن محصولات قابل استفاده وردپرس، لازم نیست متخصص قابلیت استفاده باشید.

تکنیک دیگری دارید که می خواهید به اشتراک بگذارید؟

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا