سلام! به بخش سوم و آخر از دوره ی آموزش ساخت قالب وردپرس خوش آمدید. قسمت های اول و دوم را می توانید از اینجا و اینجا بخوانید!
نمونه آزمایشی از قالب که در بالا ساختیم نشان می دهد که چگونه این قالب به درستی بوسیله ی فایل هایش کار می کند. فایل header.php بسیار مهم است و نباید به سرعت از آن گذر کنیم. چراکه این فایل شامل اطلاعاتی است که باید در تمام صفحات وبسایت شما نمایش داده شود (هدر در تمام برگه های قالب فراخوانی می شود). همه برگه ها در ابتدای کد html خود یک doctype دارند. شما هم باید doctype را در این فایل مشخص نمایید. همچنین تمام برگه های اچ تی ام ال دارای یک تگ اغازین <html> و یک تگ <head> و یک تگ <body> هستند. نمام این تگ ها هم می توانند در فایل header.php وجود داشته باشند. خب بیایید تمام این تگ های ضروری را به فایلمان اضافه کنیم. اینجاست که با چند تا از فانکشن های جدید وردپرس هم باید آشنا شویم. فانکشن هایی مثل language_attributes و bloginfo و body_class . کد های زیر را در فایل head.php کپی نمایید.
<!DOCTYPE html> <html <?php language_attributes(); ?>> <head> <meta charset="<?php bloginfo( 'charset' ); ?>"> <title><?php bloginfo( 'name' ); ?></title> </head> <body <?php body_class(); ?>> <header class="site-header"> <h1><?php bloginfo( 'name' ); ?></h1> <h4><?php bloginfo( 'description' ); ?></h4> </header>
اگر سایت را رفرش کنیم و سپس page source را مشاهده کنیم، چنین اطلاعاتی را خواهیم دید. اطلاعات زیر نشان می دهند که فانکشن get_header در فایل index.php عمل فراخوانی اطلاعات فایل header.php را انجام داده و بدین صورت ما هدر خود را تغییر داده ایم.
<!DOCTYPE html> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>WordPress Tutorial</title> </head> <body class="home blog logged-in admin-bar no-customize-support"> <header class="site-header"> <h1>WordPress Tutorial</h1> <h4>WordPress Tutorial Site</h4> </header> <h2><a href="http://wordpresstutorial.dev/2017/06/12/php-tutorial-blog-post/">PHP Tutorial Blog Post</a></h2> <p>PHP is the language that most of WordPress is built with. It is a scripting language that has humble roots, but has evolved to become a very powerful and modern language with full support for namespaces, object oriented programming, class reflection, closures, and much more. This in fact, is just an example post so we can test our custom wordpress theme. So glad you could read this example WordPress Post.</p> <h2><a href="http://wordpresstutorial.dev/2017/06/12/wordpress-tutorial-blog-post/">WordPress Tutorial Blog Post</a></h2> <p>Hello World! We will write a short tutorial here about WordPress. Of course this is just dummy text for this post so that we can have something to read. Maybe you like swimming during the summer. Eating hamburgers at the cook out is fun for all. On Monday, you can go back to WordPress Website Development. There are many things to do.</p> <ul> <li>Commute to office</li> <li>Update WordPress Theme</li> <li>Finish Statistics Reports</li> </ul> <p>This is the end of this dummy post.</p> </body> </html>
یک فانکشن دیگر نیز وجود دارد که همیشه باید در فایل header.php قرار دهید. این فانکشن مثل دیگر فانکشن هایی که قبلا گفتیم کار نمی کند و کمی پیچیده تر است. wp_head نشان دهنده ی نقطه ی پایانی هدر شما است و زمانی که با پلاگین ها کار کنید خواهید فهمید که چقدر مهم است. پس به عنوان یک تمرین برای فراموش نکردن این فانکشن بسیار مهم، همین حالا آن را درون فایل header.php خود قرار دهید.مثل زیر.
<!DOCTYPE html> <html <?php language_attributes(); ?>> <head> <meta charset="<?php bloginfo( 'charset' ); ?>"> <title><?php bloginfo( 'name' ); ?></title> <?php wp_head() ?> </head> <body <?php body_class(); ?>> <header class="site-header"> <h1><?php bloginfo( 'name' ); ?></h1> <h4><?php bloginfo( 'description' ); ?></h4> </header>
خب ما موارد ضروری مورد نیاز در فایل هدر را قرار دادیم و حالا می رویم سراغ فوتر. یادتان هست که در فایل header.php تگ های آغازین html و body را قرار دادیم. حالا موقع آن رسیده تا این تگ ها را در فوتر ببندیم یا به عبارتی تگ های پایانی مربوطه را در فایل footer.php قرار دهیم. برای این کار کدهای زیر را در فایل footer.php قرار دهید.
<footer class="site-footer"> <p><?php bloginfo( 'name' ) ?></p> </footer> <?php wp_footer() ?> </body> </html>
شاید برایتان عجیب باشد که ما چرا داریم انقدر برای هرکاری از فانکشن های وردپرس استفاده میکنیم. مثلا برای نوشتن نام یک پست از فانکشن blog_info استفاده کردیم، در صورتی که به راحتی می توانستیم آن را بنویسیم. خب پاسخ این است که ما برای همه ی پست ها که یک نام ثابت را نمی خواهیم. درواقع هر پست نام خاص مربوط به خودش را دارد که باید از طریق فانکشن ها فراخوانی شود. برای نام سایت هم همین روال را باید در پیش بگیریم. ما نمی توانیم یک نام ثابت برای وب سایت تعریف کنیم. کاربر باید بتواند پس از نصب قالب ما ، از طریق داشبورد وردپرس نام سایت خود را تغییر دهد. اکثر قالب ها هم قابلیت این را دارند که وقتی کاربر بر روی نام وب سایت کلیک می کند، به برگه ی اصلی سایت هدایت می شود. خب پس بیایید نام وب سایت را به عنوان یک لینک به فوتر پوسته اضافه کنیم.
<!DOCTYPE html> <html <?php language_attributes(); ?>> <head> <meta charset="<?php bloginfo( 'charset' ); ?>"> <title><?php bloginfo( 'name' ); ?></title> <?php wp_head() ?> </head> <body <?php body_class(); ?>> <header class="site-header"> <h1><a href="<?php echo home_url(); ?>"><?php bloginfo( 'name' ); ?></a></h1> <h4><?php bloginfo( 'description' ); ?></h4> </header>
خب! تا اینجای کار ما چندین فایل در قالب خود داشتیم. index.php , style.css , header.php و footer.php . حالا وقت آن رسیده که یک فایل مهم دیگر به نام functions.php را به قالب خود اضافه کنیم.
فایل functions.php در وردپرس بسیار مفید بوده و مورد استفاده قرار می گیرد. این فایل محل قرارگیری کدهایی است که باعث تغییر در رفتار پیش فرض وردپرس می شوند. تقریباً می توانید از functions.php به عنوان نوعی افزونه برای وردپرس با چند نکته کلیدی یاد کنید:
الان قالب ما به چه چیزی بیشتر از همه احتیاج داره؟ درسته یک ظاهر یا استایل بهتر. خب! بیایید یک فانکشن در فایل functions.php ایجاد کنیم که وظیفه اش فراخوانی استایل های درون style.css است. این هم از کدی که باید در فایل functions.php قرار دهید.
<?php function custom_theme_assets() { wp_enqueue_style( 'style', get_stylesheet_uri() ); } add_action( 'wp_enqueue_scripts', 'custom_theme_assets' );
این کد فایل حاوی استایل ها را فعال می کند. حالا شاید این سوال برایتان به وجود بیاید که چرا ما برای فراخوانی استایل ها از یک فانکشن استفاده کردیم در حالی که می شد به راحتی ان را در header.php لینک نماییم. خب کمی که جلوتر بروید و ببینید که قالب شما به وسیله ی کدها و فانکشن ها چقدر شلوغ می شود، انوقت از انجام این کار بسیار خوشحال خواهید شد. فعلا فقط در همین حد بدانید که فراخوانی ستایل ها با فانکشن، کار شما را بسیار مرتب تر خواهد کرد.
بسیار هم عالی! حالا وقت آن است که کمی استایل به قالبمان بدهیم. یک تگ <div> با کلاس container را اضافه کنیم. تگ اغازین آن را در header.pgp قرار داده و تگ بسته ی آن را در فوتر می گذاریم.
همچنین پست های موجود در فایل index.php را نیز در یک تگ <article> با کلاس post می گذاریم. سپس باید به این کلاس ها استایل بدهیم. این کلاس ها را در فایل style.css فراخوانی کرده و به آن ها استایلی اختصاص می دهیم. کاری که در قدم بعدی انجام خواهد شد.
یک تگ آغازین <div> در فایل headr.php باز کنید.
<!DOCTYPE html> <html <?php language_attributes(); ?>> <head> <meta charset="<?php bloginfo( 'charset' ); ?>"> <title><?php bloginfo( 'name' ); ?></title> <?php wp_head() ?> </head> <body <?php body_class(); ?>> <div class="container"> <header class="site-header"> <h1><a href="<?php echo home_url(); ?>"><?php bloginfo( 'name' ); ?></a></h1> <h4><?php bloginfo( 'description' ); ?></h4> </header>
یک تگ پایانی </div> در فایل footer.php ایجاد نمایید.
<footer class="site-footer"> <p><?php bloginfo( 'name' ) ?></p> </footer> </div> <!-- closes <div class=container"> --> <?php wp_footer() ?> </body> </html>
کدهای مربوط به فراخوانی پست ها را درون یک تگ <article> قرار دهید.
<?php get_header(); if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <article class="post"> <h2><a href="<?php the_permalink() ?>"><?php the_title() ?></a></h2> <?php the_content() ?> </article> <?php endwhile; else : echo '<p>There are no posts!</p>'; endif; get_footer(); ?>
در آخر هم تعدادی ستایل را در فایل style.css قرار میدهیم تا قالب و وب سایتمان کمی زیباتر شود.
/* Theme Name: customtheme Author: Vegibit Author URI: https://vegibit.com Version: 1.0 */ body { font-family: Arial, sans-serif; font-size: 16px; color: #545454; } a:link, a:visited { color: #4285f4; } p { line-height: 1.7em; } div.container { max-width: 960px; margin: 0 auto; } article.post { border-bottom: 4px dashed #ecf0f1; } article.post:last-of-type { border-bottom: none; } .site-header { border-bottom: 3px solid #ecf0f1; } .site-footer { border-top: 3px solid #ecf0f1; }
حالا زمان آن رسیده تا قالبی را که از صفر ایجاد کردیم را دوباره تماشا نیم. قالب یا پوست ای که ایجاد کردیم همانند شکل زیر نمایش داده خواهد شد.
خب! تبریک عرض می کنم! شما در طی این دوره آموزشی کوتاه ساخت قالب وردپرس موفق شدید که یک تم یا قالب وردپرسی بسازید. ما در ابتدا ساختار کلی (فایل ها و دایرکتوری های موجود در وردپرس) را دیدیم و فهمیدیم که قالب های ما در کجای این ساختار قرار می گیرند. با فایل های تشکیل دهنده ی یک قالب وردپرسی آشنا شدیم و هر یک را از صفر ایجاد کرده و کدنویسی کردیم و با فانکشن ها، استایل ها و زبان های مورد استفاده در طراحی قالب وردپرسی آشنا شدیم.
حال بیایید تک تک فایل های تشکیل دهنده ی یک قالب وردپرسی، که ما ایجاد کردیم را دوباره نام ببریم و هر یک را به صورت خلاصه و مجدد بررسی کنیم.
خب اینم از این! حالا ما می توانیم به ساخت قالب وردپرس اولیه تنها با ایجاد یک دایرکتوری و پنج فایل بپردازیم. این موارد به ما دانش بنیادی برای طراحی و سفارشی سازی یک قالب حرفه ای را می دهد.
امیدوارم که از این دوره آموزشی ساخت قالب وردپرس بهره ی کافی را برده باشید. پیروز و خوشحال و سربلند باشید.
منبع: سایت Vegibit
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.