متدهای مختلف بدست آوردن آدرس پوسته در وردپرس

0
ابزارهای وردپرسی

TopWordPressTools

متدهای مختلف بدست آوردن آدرس پوسته در وردپرس

ممکن است در تغییراتی که در قالب ها یا افزونه های وردپرسی می دهید نیاز داشته باشید تا آدرس پوسته (آدرس پوشه قالب فعال) را بدست آورید. برای این منظور وردپرس متدهای مختلفی را ارائه کرده است که در ادامه آنها را توضیح خواهیم داد.

get template directory uri

این تابع آدرس URI پوسته فعال را (Template directory URI) را بصورت رشته (string) بر می گرداند.

نکته: این تابع کاراکتر اسلش انتهایی (trailing slash) آدرس پوشه قالب را بر نمی گرداند.

در زمانی که از قالب فرزند (child theme) استفاده می شود این تابع آدرس پوشه قالب والد (parent theme) را بر می گرداند به همین دلیل از این تابع نباید برای آدرس دهی به منابع موجود در پوشه قالب فرزند استفاده کرد و بجای آن برای آدرس دهی منابع موجود در پوشه قالب فرزند می توان از تابع get_stylesheet_directory_uri استفاده کرد.

نحوه استفاده

استفاده از آدرس URI قالب:

<?php get_template_directory_uri(); ?>

چاپ آدرس URI قالب:

<?php echo get_template_directory_uri(); ?>

مثال

استفاده از تابع get_template_directory_uri برای بدست آوردن آدرس URI پوسته فعال وردپرس

<?php
function my_scripts_method() {
	wp_enqueue_script(
		'custom_script',
		get_template_directory_uri() . '/js/custom_script.js',
		array('jquery')
	);
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
?>

get template directory

این متد آدرس مطلق و کامل (absolute path) پوشه پوسته فعال وردپرس را بر می گرداند و هیچ پارامتر ورودی ندارد و خروجی آن از نوع رشته است.

نکته: این متد نیز کاراکتر اسلش انتهایی (trailing slash) آدرس پوشه قالب را بر نمی گرداند.

توجه داشته باشید که این متد آدرس مطلق پوسته فعال را بر می گرداند نه یک URI را. به مثال زیر دقت کنید.

/home/user/public_html/wp-content/themes/my_theme

در زمانی که از قالب فرزند (child theme) استفاده می شود این تابع آدرس مطلق پوشه قالب والد (parent theme) را بر می گرداند. برای بدست آوردن آدرس مطلق پوشه قالب فرزند از تابع get_stylesheet_directory استفاده کنید.

نحوه استفاده

<?php echo get_template_directory(); ?>

مثال

استفاده از تابع get template directory برای include کردن یک فایل PHP.

<?php include( get_template_directory() . '/includes/myfile.php'); ?>

نکته

برای بدست آوردن آدرس مطلق پوشه قالب های وردپرس یعنی پوشه ای که پوسته ها در درون آن نگهداری می شوند از تابع get_theme_root و برای بدست آوردن نام پوشه پوسته فعال ونه مسیر کامل آن از تابع get_template استفاده می شود.

get theme root uri

این متد آدرس URI پوشه پوسته های وردپرس را بدون اسلش انتهایی آن بصورت رشته بر می گرداند و پارامتر ورودی خاصی ندارد.

نحوه استفاده

<?php get_theme_root_uri(); ?>

مثالی از خروجی این تابع

http://www.wordpress.org/wp-content/themes

get theme root

این متد آدرس مطلق (absolute path) پوشه پوسته های وردپرس را بدون اسلش انتهایی آن بصورت رشته بر می گرداند.

نحوه استفاده

<?php get_theme_root(); ?>

پارامترهای ورودی

این تابع دارای یک پارامتر ورودی بوده که مقدار آن می تواند نام (template name) یا استایل شیت (stylesheet) قالب باشد. در حالت پیش فرض هیچ ورودی برای این تابع وجود ندارد.

مثال

بدست آوردن تعداد زیرپوشه های درون پوشه پوسته ها در وردپرس. دقت داشته باشید که ممکن است تعداد زیرپوشه های درون پوشه پوسته ها بیشتر از تعداد پوسته هایی که وردپرس شناسایی کرده باشد زیرا ممکن است برخی پوسته ها بدلیل ایرادات در بخش پوسته ها نمایش داده نشوند اما پوشه آنها وجود داشته باشد.

<?php
function display_themes_subdirs_count_info()
  $theme_root = get_theme_root();
  $files_array = glob("$theme_root/*", GLOB_ONLYDIR);
  echo "There are " . count($files_array) . " subdirectories in the " . $theme_root . " directory"; 
}
?>

یک نمونه خروجی برای مثال بالا:

There are 5 subdirectories in the /home/user/public_html/wp-content/themes directory.

get template

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

نحوه استفاده

<?php get_template() ?>

منبع: وب سایت وردپرس

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

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