با عرض سلام خدمت کاربران محترم سایت پی وی لرن.
با جلسه ای دیگر از سری جلسات دوره جامع آموزش ساخت قالب وردپرس در خدمت شما هستیم.
در این جلسه قصد داریم توابع قالب وردپرس (theme functions) را آموزش دهیم.
فایل functions.php جایی است که شما میتوانید قابلیت های منحصر به فردی را به قالب خود اضافه کنید.
این فایل میتواند با استفاده از توابع اصلی وردپرس، (هسته وردپرس)، قالب شما را گسترده تر و کاراتر کند.
فایل functions.php مانند یک پلاگین عمل میکند که ویژگی ها و قابلیت هایی را به سایت شما اضافه میکند.
میتوانید از ان برای فراخوانی توابع وردپرس و یا تعریف توابع خود استفاده کنید.
استفاده از فایل functions.php و پلاگین ها هر کدام مزایا و ویژگی های خود را دارد.
ویژگی های پلاگین:
ویژگی های فایل functions.php:
هر قالب فایل functions مخصوص خود را دارد. اما تنها فایل functions.php قالب فعال اجرا خواهد شد.
با استفاده از فایل functions.php میتوانید کار های زیر را انجام دهید:
در ادامه تعدادی مثال از برخی توابع فایل functions.php و نحوه کار آن ها خواهیم زد.
تعدادی از ویژگی های قالب باید در یک تابع setup قرار داشته باشند تا هنگامی که قالب فعال شد، اجرا شوند.
هر کدام از این ویژگی ها میتوانند به فایل functions.php اضافه شوند تا ویژگی های پیشنهادی وردپرس فعال شوند.
مثال:
1 2 3 4 5 6 7 8 9 10 | if ( ! function_exists( 'myfirsttheme_setup' ) ) : /** * Sets up theme defaults and registers support for various WordPress features * * It is important to set up these functions before the init hook so that none of these * features are lost. * * @since MyFirstTheme 1.0 */ function myfirsttheme_setup() { |
در مثال بالا تابع myfirsttheme_setup باز شده اما بسته نشده. مطمئن شوید تا تابعی که مینویسید کامل و بسته شده باشد.
این ویژگی امکان داشتن یک تصویر کوچک به پست ها را میدهد که میتواند هنگام لیست کردن پست ها استفاده شود.
با استفاده از تابع add_theme_support میتوانید این ویژگی را فعال کنید.
1 | add_theme_support( 'post-thumbnails' ); |
این ویژگی به کاربران این امکان را میدهد تا پست هایشان را به روش های مختلفی قالب بندی کنند.
این ویژگی نیز با تابع add_theme_support فعال میشود:
1 | add_theme_support( 'post-formats', array ( 'aside', 'gallery', 'quote', 'image', 'video' ) ); |
این خصوصیت برای اطمینان از اینکه محتوای شما از کانتینر سایت تجاوز نکند، مورد استفاده قرار میگیرد.
Content Width حداکثر عرض ممکن برای محتوای پست ها و صفحات را مشخص میکند.
1 2 | if ( ! isset ( $content_width) ) $content_width = 800; |
در نهایت اگر بخواهید تمام ویژگی های بالا را در فایل functions.php قرار دهید، فایل شما به صورت زیر خواهد بود:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | /** * MyFirstTheme's functions and definitions * * @package MyFirstTheme * @since MyFirstTheme 1.0 */ /** * First, let's set the maximum content width based on the theme's design and stylesheet. * This will limit the width of all uploaded images and embeds. */ if ( ! isset( $content_width ) ) $content_width = 800; /* pixels */ if ( ! function_exists( 'myfirsttheme_setup' ) ) : /** * Sets up theme defaults and registers support for various WordPress features. * * Note that this function is hooked into the after_setup_theme hook, which runs * before the init hook. The init hook is too late for some features, such as indicating * support post thumbnails. */ function myfirsttheme_setup() { /** * Make theme available for translation. * Translations can be placed in the /languages/ directory. */ load_theme_textdomain( 'myfirsttheme', get_template_directory() . '/languages' ); /** * Add default posts and comments RSS feed links to <head>. */ add_theme_support( 'automatic-feed-links' ); /** * Enable support for post thumbnails and featured images. */ add_theme_support( 'post-thumbnails' ); /** * Add support for two custom navigation menus. */ register_nav_menus( array( 'primary' => __( 'Primary Menu', 'myfirsttheme' ), 'secondary' => __('Secondary Menu', 'myfirsttheme' ) ) ); /** * Enable support for the following post formats: * aside, gallery, quote, image, and video */ add_theme_support( 'post-formats', array ( 'aside', 'gallery', 'quote', 'image', 'video' ) ); } endif; // myfirsttheme_setup add_action( 'after_setup_theme', 'myfirsttheme_setup' ); |
جلسه آموزش توابع قالب وردپرس نیز به پایان رسید.
در جلسه بعد به آموزش اتصال فایل های قالب و دایرکتوری ها خواهیم پرداخت.