-/> آموزش ساخت قالب وردپرس

شما اینجایید: انجمن فارسی پرسوردپرسآموزشآموزش ساخت قالب وردپرس
صفحه: [1]
  ارسال به دوستان  |  چاپ صفحه  
نويسنده موضوع: آموزش ساخت قالب وردپرس  (دفعات بازدید: 7865 بار)
0 کاربر و 1 مهمان درحال دیدن موضوع.
مدیر کل انجمن
کاربر فعال
*****
تشکر شده +137/-0
تعداد ارسال: 202
جنسيت : پسر
WWW
« : 03 تير 1388,ساعت 18:24:15 »

طبق سلسله مباحث زیر که از سایت www.tenet.ir براتون می ذارم ، طریقه ساخت قالب به طور شفاف و ساده آموزش داده میشه بی تفاوت
-------------
بسیار آروم و نم نم میریم جلو تا همه با هر سطحی از آشنایی که از کد نویسی دارن بتونن دقیقا بفهمن چیکار میکنن نه اینکه یه چیزی رو یاد بگیریم و یک هفته بعد یادمون بره.

امروز یک سری توضیحات میدم که امیدوارم دقیقا انجام بدین تا به نتیجه ی مطلوب برسیم

یک اینکه لطفا هر موقع گفتم این کد رو بنویسین دقیقا منظورم اینه که کد رو بنویسین!

یعنی کپی پیست نداریم! البته بعضی وقت ها مهم نیست که خواهم گفت.

نکته ی دیگه در مورد کد نویسیه که حتما باید بهش توجه کنین!

هر تگی که باز میشه بالاخره باید بسته شه! اما دقیقا به صورت زیر
کد:
<tag1>

<tag2>

<tag2/>

<tag1/>

به شکل زیر نگاه کنید که کاملا و دقیقا غلط میباشد!!!

کد:

<tag1>

<tag2>

<tag1/>

<tag2/>
این نظریه یا اطلاعیه نیست یک قانون است. یعنی ما تگ هایی رو که باز میکنیم به ترتیب میبندیم!

اگر دقت کرده باشین (اگه نکردین دقت کنین!!!) احتمالا فهمیدین که شروع کننده ی هر تگ به صورت <> است، و برای بستن هر تگ باید یک اسلش قبل از تگ مربوطه بزاریم یعنی اینجوری! : </>

نگران نباشین بعدا میفهمیم که کاربرد هر تگ چیه و چه میکنه!

نکته ی دیگه در مورد ساختار قالب های وردپرسه که برای کسی که نمیشناستش بسیار سخت و عجیبه اما وقتی بفهمیم که جریان چیه به هوش طراحان پی میبریم و کم کم میفهمیم که چقدر خوب و دقیق و مناسبه!

در زیر لیست فایلهای که یک قالب کامل رو تشکیل میدن رو میبینیم
کد:
    index.php

    home.php

    single.php

    page.php

    archive.php

    category.php

    search.php

    404.php

    comments.php

    comments-popup.php

    author.php

    date.php

    style.css
نگران نباشین اونقدر که به نظر میرسه سخت نیست!

فایل index.php قسمت اصلی قالب ماست که وجودش ضروری و لازمه! همینطور style.css که از اسمش معلومه نقش استایل کردن و شکل دادن به تم یا همون قالب مارو داره!

شما وقتی در یک سایت بر پایه ی وردپرس هستین در یکی از صفحات زیر هستین
کد:
    index.php

    single.php

    page.php

    archive.php

    search.php

    404.php
از اسم هر کدومم معلومه که جریان چیه!

اگر هنوز نفهمیدین دلیل بر خنگی شما نیست! مطمئن باشین تعارف نمیکنم!

index صفحه اصلی سایت ، single صفحه ی یک نوشته به خصوص ، page یک صفحه از سایت ، archive صفحه آرشیو هفته ای ، ماهانه و … سایت ، search صفحه ای که برای جستجوی سایت استفاده میشه و بالاخره ۴۰۴ صفحه ای برای ارور (error) سایت!

البته هیچ کدوم از اینها لازم نیستن یعنی ساخت index در اولویته !!

با ساخت همین یک صفحه (یعنی index) وردپرس اکثر کارهارو انجام میده!

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

فارسی پرس - آنجا که پارسی دوباره متولد می شود.
مدیر کل انجمن
کاربر فعال
*****
تشکر شده +137/-0
تعداد ارسال: 202
جنسيت : پسر
WWW
« پاسخ #1 : 03 تير 1388,ساعت 18:26:15 »

خوب میریم سراغ اصل مطلب ، تصویر زیر رو نگاه کنید


دیدین؟

حالا دقت کنین!

میبینیم که یک قالب تشکیل شده از چند قسمت مختلفه که در کنار هم قرار میگیرن !

البته اکثرن این شکلیه و میتونه به هر صورتی باشه! که فعلا به ما ربطی نداره!

تو قسمت header اسم وبلاگ و توضیحات میتونه قرار بگیره و تو index هم نوشته ها و پست های وبلاگ قرار میگیره یعنی همین جایی که شما میخونین داخل در index می با شد!

در sidebar هم که هر چیزی از جمله widget (ابزارک) های مختلف قرار میگیرن!

در footer هم اطلاعاتی مثل copyright ، نام طراح و …

البته اینها قانون نیستن شما میتونینهر کاری بخواهید انجام بدین مثلا جای index رو با footer عوض کنین!

البته اگه تاب برداشته باشه یه جاییتون! بلانسبت!

نکته ی بسیار خوب وردپرس که در پست قبل ازش گفتم اینجا روشن میشه که :

header و footer معمولا در صفحات مختلف از جمله page.php ، single.php و … تغییر نمیکنند! و این index است که مثلا single.php جایگزینش میشه.

این هم از این!
گزارش به مدیر انجمن   خارج شده است

فارسی پرس - آنجا که پارسی دوباره متولد می شود.
مدیر کل انجمن
کاربر فعال
*****
تشکر شده +137/-0
تعداد ارسال: 202
جنسيت : پسر
WWW
« پاسخ #2 : 03 تير 1388,ساعت 18:30:56 »

به فولدر رووت wordpress که وارد شدیم محتویات وردپرس رو میبینیم

باید بعد از اون به wp-content و بعد به پوشه ی themes بریمو یک فولدر جدید که اسم قالب خواهد بود بسازیم من اسم قالب رو میزارم amoozesh !

خوب حالا این فایل رو در notepad باز کنید

کد:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://gmpg.org/xfn/11">

<title><?php bloginfo('name'); ?><?php wp_title(); ?></title>

<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" /> <!-- leave this for stats please -->

<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />
<link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="<?php bloginfo('atom_url'); ?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />

<?php wp_get_archives('type=monthly&format=link'); ?>
<?php //comments_popup_script(); // off by default ?>
<?php wp_head(); ?>
</head>

<body>

</body>

</html>

بعد با notepad بازش کنید سپس به گزینه file رفته و save as رو بزنین و بعد در آدرس زیر با نام index.php سیو کنید.
کد:
    C:\wamp\www\wordpress\wp-content\themes\amoozesh
خوب؟

خوب!! منم اینکارو کردم بعد هرچی کد تو صفحه بود پاک کردم و دوباره به save as رفتم و اینبار اسم فایل رو style.css گذاشتم!

حالا شما هم اینکارو کنین لطفن!همه چیز فکر میکنم واضح بود به هر حال این عکس رو هم میذارم ببینین چه خبره!


خوب یک سری توضیح کوچولو هم میدم در مورد کدی که کپی کردین در فایل index.php

doctype در اول صفحه که میبینین و منم میبینم ام نمیدونم چیه! اول همه ی فایل های html میذارن منم گذاشتم! اگه میخواهین بیشتر از اینی که من گفتم!! بدونین برین بسرچین!!

من که علاقه ای به دونستنش ندارم!

تگ <html> به مرورگر ما (web browser ) میگه که کد های زیرش تا جایی که برسه به <html/> به این زبون نوشته شده!

تگ <head> هم قسمتی از صفحه است که بیشتر کار اطلاعات گرفتن و دادن به مرورگر و از سرور و این حرفارو داره یعنی به خواننده سایت کاری نداره! برعکس <body> که بدنه ی وبلاگ و جاییه که ما از سایت میبینیم!

تگ <title> عنوان صفحه رو در بر میگیره که قرار در واقع اسم سایت ما باشه!

<?php bloginfo(’stylesheet_url’); ?> هم به ورد پرس میفهمونه که بره جایی که stylesheet ما قرار داره که در واقع فایل style.css که ساختیم رو به عنوان طراح صفحه (استایل کننده در واقع) میشناسونه.

بعدا باز بیشتر توضیح میدم الان فقط هدف پر حرفیه!

پس یادآوری شد که هر تگ بین <> است و پایان اون یک / به پشتش اضافه میشه!

حالا یک توضیح در مورد php

میدونیم که وردپرس با زبان php نوشته شده که اگه قویترین زبان برنامه نویسی تحت وب نباشه قطعا دومیشه!

php بر روی سرور ما(یعنی جایی که سایت بر اون هست) یا همون هاست ما نصب هست(یعنی همینی که ما شبیه سازی کردیم توسط برنامه wamp ) وقتی مرورگر وب که داره صفحه رو میخونه تا ترجمه کنه و به ما نشون بده به

<?PHP

میرسه دیگه کاری نداره! یعنی نمیتونه داشته باشه! اینجاست که php که روی سرور نصبه وارد کار میشه و شروع به کامپایل کردن یا همون تجزیه و تحلیل کردن کد میکنه و یک خروجی به مرورگر میده و این کار کامپایل کردن رو تا زمانی که به کد

?>

برسه ادامه میده و بعد …. همینطوری ادامه داره کار تا زمانی که سایت کاملا لود شه و به html ترجمه شه تا ما بتونیم اینجوری که هست ببینیمش!

پس ما هرچیزی که بین php?> , <?  مینویسیم باید به زبون php باشه!

و این مساله بدین معنا نمیباشد که باید برنامه نویس باشیم!! پس ترس نداره

یک مورد دیگه اینکه میشه بین این دو بیش از یک دستور نوشت البته باید به این نکته توجه کرد که هر دستور با ; به اتمام میرسه یعنی باید در آخر هر دستور یک ; بگذاریم!

همین دیگه!

بیشتر از این عذاب دهنده نمیشم!

فقط ۵ دقیقه مونده

فایل style.css رو اگه نبستین ببندین دوباره باز کنین! همینجوری!

بعد اینارو کپی کنین توش
کد:
    /*
    Theme Name: Amoozesh
    Theme URI: http://www.TeneT.ir/
    Description: This is my frist theme for a tutorial.
    Version: 1.0 ß
    Author: Siavash Keshmiri
    Author URI: http://www.TeneT.ir/

    */
بعد از سیو کردن برین به کنترل پنل یا همون داشبورد وردپرس
کد:
    http://localhost/wordpress/wp-admin.php
حالا به Appearance یا همون “ظاهر سایت” در فارسی پرس برین

میبینین که یک تم جدید ساخته شده به اسم آموزش که siavash keshmiri  ساختتش و یک سری توضیحات داره البته این اسم رو به اسم خودتون تغییر بدین چون قراره شما تم رو بسازین!

پس فهمیدیم که کدی که اول استایل نوشتیم چه کاری کرد!

حالا این تم رو فعال کنید و برین به صفحه اول سایتتون یعنی همون
کد:
    http://localhost/wordpress/
میبینین که هیچی نمیبینین که!

اگه چیزی ببینین یعنی اشتباه کردین! خونسرد
گزارش به مدیر انجمن   خارج شده است

فارسی پرس - آنجا که پارسی دوباره متولد می شود.
مدیر کل انجمن
کاربر فعال
*****
تشکر شده +137/-0
تعداد ارسال: 202
جنسيت : پسر
WWW
« پاسخ #3 : 03 تير 1388,ساعت 18:36:29 »

به فلدر قالب تون در وردپرس برید
کد:
wordpress\wp-content\themes\amoozesh
امیدوارم تغییری در فایل index.php ایجاد نکرده باشین! اگه اینکار رو انجام دادین به نوشته شماره۳ رفته و کد رو با من یکی کنید.

توسط مرورگر وبی که استفاده میکنین (که امیدوارم اینترنت اکسپلورر نباشه!!!!) برین به صفحه اصلی سایت
کد:
    http://localhost/wordpress/
پس الان ۳ تا صفحه باز داریم

فولدر تم آموزش

مرورگر وب در صفحه اصلی

و یک برنامه که یه آهنگ ملایم پخش میکنه!

همینطور که میبینید در صفحه سایتمون هیچی نیست!

خوب، میریم وارد index.php میشیم (با notepad) و بعد از تگ <body> نوشته ی زیر رو تایپ میکنیم!!

کپی نمیکنیم چشمک
کد:
    <?php bloginfo(’name’); ?>
میدونیم که این یک کد نوشته شده به زبان php است و bloginfo یک تابع است که توسط سازندگان وردپرس ساخته شده و ما فقط اون رو فراخوانی میکنیم.

هر تابع php در مقابل خودش () دارد که میتونه بینش آرگمان های مختلفی باشه یا اصلا نباشه!

bloginfo الان نام (name) سایت رو برمی گردونه(یعنی اسم سایت ما رو به html تبدیل میکنه که نمایش داده بشه)

خوب؟ دیگه بیشتر از این نمیشه توضیح داد!

حالا کلید Ctrl رورو نگه دارین و S رو بزنین تا کارمون ذخیره(save) بشه!

حالا میریم به مرورگرمون که در صفحه ی اول سایتمون قرار داره و کلید F5 رو میزنیم تا صفحه refresh یا به قولی reload بشه.
دیدین؟!!



ما در واقع الان با تابع bloginfo  نامی که در صفحه ی همگانی (general) تنظیمات (options) میتونیم عوض کنیم رو فراخوانی کردیم.
کد:
    http://localhost/wordpress/wp-admin/options-general.php
خوب حالا اگه بخواهیم که این نوشته رو به یک لینک تبدیل کنیم که کاربر با کلیک کردن روی نوشته به صفحه ی اصلی سایت بره چی؟

کاری نداره! با استفاده از یک تگ XHTML این کار به راحتی انجام میشه!

بلافاصله قبل از شروع کدی که نوشتیم یعنی php?> کد زیر رو اضافه میکنیم:
کد:
    <a href=”#”>
و بعد از <? هم این تگ رو که باز کردیم (یعنی تگ a رو) همونطوری که قبلا گفته بودم میبندیم یعنی یک / بهش اضافه میکنیم.
کد:
    </a>
تا در مجموع داشته باشیم:
کد:
    <a href=”#”><?php bloginfo(’name’); ?></a>
یادتون نره کپی نکنید چون اصلا کار نخواهد کرد! من هم دیگر تکرار نخواهم کرد این نکته رو!

میبینید که الان نوشته ی ما تبدیل به یک لینک شده که البته با کلیک بر روی اون کار خاصی انجام نمیشه! حالا اگه بخواهیم کار خاصی انجام بشه چی؟

این هم کاری نداره

برای اینکه لینک مارو به صفحه اصلی سایت ارجاع بده باید کد زیر رو جایگذین # بکنید.
کد:
    <?php bloginfo(”url”); ?>
احتمالا فهمیدین چی شد!

آرگومان تابع bloginfo رو اینبار url انتخاب کردیم که آدرس سایت رو برمی گرداند!!

به همین راحتی

به همین …

امیدوارم ابهامی نباشه و بیشتر امیدوارم که ایرادی در توضیحاتم نبوده باشه هرچند فکر میکنم امکانش نیست!
گزارش به مدیر انجمن   خارج شده است

فارسی پرس - آنجا که پارسی دوباره متولد می شود.
مدیر کل انجمن
کاربر فعال
*****
تشکر شده +137/-0
تعداد ارسال: 202
جنسيت : پسر
WWW
« پاسخ #4 : 03 تير 1388,ساعت 18:44:43 »

مثل همیشه میریم به فولدر amoozesh

wamp رو هم باز میکنیم و با مرورگرمون به صفحه اول سایتمون میریم.

سایت ما الان یه خط در بالای صفحه داره که اسم سایت رو نوشته و با کلیک بر روی این لینک به صفحه اصلی سایت منتقل میشیم.

ما در درس قبل کد زیر رو نوشتیم:
کد:
    <a href=”<?PHP bloginfo(’url’);?>”><?PHP bloginfo(’name’);?></a>
خوب تا اینجارو نگه دارین!

یه سوال!

میدونین heading چیه؟

heading همون title یا عنوان است!

اگه شما میخواستین یک تگ بسازین که نشون دهنده ی heading باشه چه میکردین؟ قطعا تگی به صورت <hx> که x عدد است ، ایده ی بدی نیست!

در XHTML تگ هایی با عنوان های زیر داریم که هرچه عدد بزرگتر میشود از قدرت و اندازه نوشته ی بین دو تگ کم میشه
کد:
    <h1> </h1>
    <h2> </h2>
    <h3> </h3>
    <h4> </h4>
    <h5> </h5>
    <h6> </h6>
نقطه مشترک همه این تگ های اچ دار!!!! اینه که عنوان هستن!

یعنی حتی h6 که کوچکترینشون است به هر حال متمایز از نوشته های دیگر ماست و bold است!!

خوب ما برای اینکه بخواهیم اسم سایتمون بزرگتر از نوشته های معمولی دیگه باشه کدی که ریروز نوشتیم رو بین دو تگ h1 قرار میدیم یعنی داریم:
کد:
    <h1><a href=”<?PHP bloginfo(’url’);?>”><?PHP bloginfo(’name’);?></a></h1>
وقتی این کار رو کردیم میریم و تغییرات رو توی صفحه اصلی سایت میبینیم!

این از کار اولی!

کار بعئی ما اینه که توضیحاتی رو که موقع نصب برای وبلاگ نوشتیم ( و البته همیشه هم میتونیم در قسمت تنظیمات تغییرش بدیم!) رو بارگذاری کنیم و زیر اسم سایت توضیحات رو اضافه کنیم!

برای اینکار حتما میدونین که باید از چه تابعی استفاده کنیم؟!

از اونجایی که توضیحات سایت از جمله اطلاعات (info) مربوط به سایت هستن پس از تابع ()bloginfo استفاده میکنیم!و فقط کافیه آرگومان تابع رو “توضیحات” (description) بنویسیم:
کد:
    <?php bloginfo(’description’); ?>
این کد رو بلافاصله بعد از کد قبلی نوشتیم وفایل رو سیو میکنیم ومیریم ببینیم سایتمون چه تغییری کرده!

میبینیم که توضیحاتی در زیر اسم سایت اومده که البته زیادی کوچیکه و جلوه ی لازم رو نداره!

برای حل این مشکل از تگ H2 استفاده میکنیم:
کد:
    <h2><?php bloginfo(’description’); ?></h2>
و دوباره سیو میکنیم و میبینیم چه کرده ایم!

میبینیم که نوشته ی ما کمی از نام سایت که مهم تر است کوچکتر و از نوشته های معمولی بزرگتر خواهد بود!

از درسهای قبل یاد گرفتیم که php?> شروع یک کد به زبان php رو نشون میده و bloginfo تابعی است که اطلاعات سایت ما رو در بر داره!

ما در اینجا به توضیحاتی در مورد سایت نیاز داشتیم و معادل انگلیسی این کلمه (description) رو در بین دو پرانتز این تابع نوشتیم!

یک نکته دیگه رو بگم!

یادتون هست که گفتم همه ی تابع های php باید یک  پرانتز باز و بسته () داشته باشند! حتی اگه چیزی بینشون نباشه!؟

برای اثبات این مساله که ممکن هست که جلوی تابع چیزی نوشته نشده باشه به این نکته توجه کنین که اگر در تابع bloginfo هیچ آرگومانی ننویسیم (یعنی بین دو پرانتز چیزی نباشه) تابع اسم وبلاگ رو بر به ما میده یعنی نوشتن name یا ننوشتن اون هیچ فرقی نداره و تنها سودی که نوشتنش داره اینه که از گیجینگ (گیج شدن) جلوگیری میکنه!

این هم از این!

حالا میریم سراغ تگی که بسیار باهاش کار خواهیم داشت و اساسی هم کار خواهیم داشت!

تگ <div> کار مهمی به عهده داره و اون اینه که یک جعبه ی نا مرئی برای ما میسازه! یعنی یک حدودی رو معین میکنه که کدهای مربوط رو در خودش جا میده

حالا تمام کدهایی که نوشتیم یعنی همین دو خط ناقابل رو بین این تگ قرار بدین لطفا پلیض!

تا داشته باشیم:
کد:
<div>
<h1><a href=”<?PHP bloginfo(’url’);?>”><?PHP bloginfo(’name’);?></a></h1>
<h2><?PHP bloginfo(’description’);?></h2>
</div>
اگه ذخیره کنید و برین سایت رو ببینید میبینید که هیچ تغییری نمیبینید! چون گفتم که این تگ نامرئی است و چشم بصیرت میخواهد دیدنش!

خوب شاید بپرسین که فایده ی این کار چی بود؟!

من هم جواب میدم فایده ی این کار این است که ما میتونیم به این تگ یک اسم بدیم!

بعد ها کلی با این اسم دادن ها کار خواهیم داشت و میفهمیم که بدون این اسم هیچ کاری نمیشه کرد!

ما به کل کدهایی که نوشتیم اسم header رو میدیم ، چرا؟ چونکه همه چیزهایی که نوشتیم مربوط به سر تیتر و عنوان صفحه ما بود!

نحوه ی نامگذاری این بچه div به این صورت است که میبینید:
کد:
    <div id=”header”>
اکی؟ یعنی قبل از اینکه < بنویسیم یک id یا شناسه به تگ میدیم تا بدونیم که هرچی بین این تگ تا <div/> است مربوط به header سایت است!

البته با ذخیره کردن و refresh کردن سایت میبینیم که هیچ تغییری نداریم در حالی که خودمون میدونیم داریم!!:d

حالا ما تا امروز رسیدیم به اینجا که میبینید:
کد:
<div id=”header”>
<h1><a href=”<?PHP bloginfo(’url’);?>”><?PHP bloginfo(’name’);?></a></h1>
<h2><?PHP bloginfo(’description’);?></h2>
</div>
گزارش به مدیر انجمن   خارج شده است

فارسی پرس - آنجا که پارسی دوباره متولد می شود.
مدیر کل انجمن
کاربر فعال
*****
تشکر شده +137/-0
تعداد ارسال: 202
جنسيت : پسر
WWW
« پاسخ #5 : 03 تير 1388,ساعت 18:50:01 »

wamp،مرورگر وب و فولدر آموزش ما مثل همیشه باز هستن تا درس شماره ۵ رو شروع کنیم!

نفس عمیق!

در درس قبلی ساخت هدر رو تموم کردیم و حالا میخواهیم بریم پایین!

یک تگ نامرئی(div) زیر هدر میسازیم و id اون رو content می نهیم!!! که معنای محتوا رو میده!

در مجموع جلسه قبل و امروز داریم:
کد:
    <body>
    <div id=”header”>
    <h1><a href=”<?PHP bloginfo(’url’);?>”><?PHP bloginfo(’name’);?></a></h1>
    <h2><?PHP bloginfo(’description’);?></h2>
    </div>

    <div id=”content”>

    </div>
    </body>
همه چیز فکر میکنم واضح بوده و هست فقط یه نکته در مورد کد نویسی و اون اینکه این فاصله هایی که من میدم و شما هم انشاالله میدهید برای چک کردن و دوباره خواندن کد در آینده به ما کمک زیادی میکنه تا گیج نشیم! توجه داشته باشین که به جای استفاده از کلید space برای فاصبه های زیاد مثل خط دوم و سوم این کد از کلید tab استفاده کنید!

خوب حالا در content کد زیر را بنویسید.
کد:
    <?PHP if (have_posts() ) : while (have_posts() ) : the_post(); ?>

    <?PHP endwhile; ?>

    <?PHP endif ?>
میدونین حلقه چیه؟

حلقه یعنی اینکه تا زمانی که به چیزی که مد نظر ماست برسیم یک کد تکرار میشه!

الان ما در اینجا حلقه ساختیم! ولی قبل از اون یک شرط گذاشتیم که با if ساخته میشه:

یعنی نوشتیم اگر ( if ) ما پستی (مطلبی) داشتیم برو به مرحله ی بعد اگر نداشتیم برو تا بعد از شرط یعنی بعد از endif !!

حالا در مرحله ی بعد while یک حلقه ایجاد میکنه که تا زمانی که پست داریم یعنی have_posts برقرار است این حلقه تا endwhile میره سر راه the_post رو فراخوانی میکنه و باز برمیگرده!

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

دلیل اینکه while قبل از if بسته شد هم از اون قانون نشأت میگیره!

خوب میریم و قبل از endwhile تابع the_title رو فراخوانی میکنیم تا مثل درس قبلی که عنوان وبلاگ رو فراخوانی کردیم اینبار عنوان پست یا پست هامون رو فراخوانی کنیم تا داشته باشیم:
کد:
    <?PHP if(have_posts()): while(have_posts()):the_post();?>

    <?PHP the_title() ?>

    <?PHP endwhile; ?>

    <?PHP endif ?>
کار خودمون رو ذخیره میکنیم و میریم در داشبورد یا همون پیشخوان خودمون تا چند پست امتحانی بدیم!

حتما میدونین که محل پست کردن مطالب جدید در این آدرس است:
کد:
    http://localhost/wordpress/wp-admin/post-new.php
بعد از اینکه دو،سه تا پست دادیم میریم ببینیم سایتمون در چه وضعیتی است!



در این عکس صفحه ی ما تا اینجای کار رو میبینید به همراه تابع هایی که در کنار هر کدوم از اثرات خودشون با رنگ قرمز مشخص شده اند!

و میبینیم که عنوان پست های ما پشت سر هم و بیریخت و… در کنار هم توسط the_title فراخوانی شده اند!

خوب اگه ولگرد وب (وب گرد) باشید مثل من! حتما در وبلاگ های مختلف دیدین که با کلیک روی هر عنوان مطلب میتونین به صفحه ی اصلی اون پست برین و در واقع هر عنوان یک لینک به همون مطلبه!

حالا ما همونطور که عنوان سایت رو تبدیل به لینک کردیم این کارو با عنوان مطلب هم میکنیم:
کد:
    <a href=”#”> <?PHP the_title() ?> </a>
با این کار عنوان هامون تبدیل به لینک هایی شدن که همه سر به یک بیابان میگذارند! و آن بیابان # است!

میتونین با ذخیره کردن صفحه و دیدن صفحه سایت این نکته رو تست کنین.

میبینیم که همه ی عنوان ها تبدیل به لینک های به درد نخوری تبدیل شدن که هیچ غ.. نمیکنن!

اما برای اینکه یه غ… بکنن و لینکشون تبدیل به آدرس اون پست بشه از تابع the_permalink استفاده ، و اون رو جایگزین # میکنیم.

این تابع چون تابع php است میدونیم که چه کنیم:
کد:
    <a href=” <?PHP the_permalink() ?>”> <?PHP the_title() ?> </a>
حله؟

حالا لطفا پاشین یک عدد سیب میل بفرمایین تا چشماتون هم یه استراحتی بکنه و یه ویتامینی چیزی هم برسه به بدن مبارک! البته من سیب ندارم پرتقال میخورم! اینم قبوله! Cheesy

نوش جان!

حالالینکهامون درست شدن! میدونین که تا اینجا چی شد؟!

حلقه while به تعداد پست هایی که داریم میره و خط زیرش رو تکرار میکنه و یک کار رو با همه ی اونها انجام میده! یعنی عنوان پست رو تبدیل به لینک همون پست میکنه و میره سراغ پست بعدی!

حالا با این شکل ناجور چه کنیم؟!

یادتون هست که گفته بودم header چیست و تگ مربوط به اون در xhtml چیه؟

این عنوان ها هم header هستند دیگر!؟

خوب خط کدی که نوشتیم رو بین تگ h میگذاریم تا ابهت یک عنوان رو داشته باشه! اما این بزرگی به عظمت نام و عنوان سایت ما نیست!! پس به جای h1 از h2 که کمی کوچکتر است استفاده میکنیم! سپس save و refresh!!

دیدین چی شد؟
کد:
    <h2> <a href=” <?PHP the_permalink() ?>”> <?PHP the_title() ?> </a> </h2>
خوب منم دیدم! تازه داریم یه کارایی میکنیم!

در درس بعدی کار قشنگی میکنیم که اونم نشون دادن متن پست های قشنگون است!!

برای این درس فکر میکنم بس باشد.
گزارش به مدیر انجمن   خارج شده است

فارسی پرس - آنجا که پارسی دوباره متولد می شود.
مدیر کل انجمن
کاربر فعال
*****
تشکر شده +137/-0
تعداد ارسال: 202
جنسيت : پسر
WWW
« پاسخ #6 : 03 تير 1388,ساعت 18:52:51 »

و حالا میخواهیم درس مهم شماره ۵ رو ادامه بدیم:

مثل همیشه برنامه ها و فولدر های مورد نیازمون رو باز میکنیم.

در درس قبل به اینجا رسیدیم که وبلاگمون دارای اسم، توضیحات و لیست مطالب هست.

خوب میدونیم که مطالب ما الان دیده نمیشن!

خوب برای اینکار باید در زیرعنوان نوشته در فایل index که در جلسه قبل با این کد:
کد:
    <h2><a href=” <?PHP the_permalink() ?>”> <?PHP the_title() ?> </a></h2>
نوشتیم کد زیر رو اضافه کنیم:
کد:
    <?PHP the_content();?>
به همین راحتی content یا محتوای پست رو فراخوانی میکنیم، کار رو ذخیره کرده و میریم سایتمون رو ببینیم!

به این ترتیب متن نوشته ها هم در صفحه ظاهر میشه و صفحه ما شامل: عنوان سایت،توضیحات سایت،عنوان پست ها به همراه متن اونهاست!

ما در حال حاظر یک سایت نیمه کامل و البته بسیار بد شکل و قیافه داریم که اصلا ترس نداره!

بعدا با استایل کردن میتونیم بسیار زیبا و شکیلش کنیم.(با کمک فایل style.css )

میبینیم که یک خط کوتاه کد php که نوشتیم چه میکنههههه!!!

احتمالا میدونین که اگه خودتون میخواستین با html این مطالبی که نوشتین رو بعد از وقت گذاشتن بسیار زیاد بنویسین احتمالا از نوشتن پشیمون میشدین!

خوب بریم سر تمیز کاری!

یادتون میاد که در درس header کل کدهای مربوط به قسمت بالایی صفحه رو بین تگی نامرئی(div) با شناسه ی header گذاشتیم و در پایین اون یک تگ نامرئی دیگه ساختیم با نام content که کل محتوای صفحه رو در بر میگیره! حالا ما درمحدوده ی content قرار داریم و میخواهیم که محتوای عنوان نوشته ها و محتوای اونها رو از بقیه قسمت های صفحه متمایز کنیم و نامهایی مناسب براشون انتخاب کنیم.

برای اینکار پیشنهاد من این است که یک نام مناسب برای عنوان هر پست و همچنین یک نام برای متن پستها انتخاب کنیم!

برای اینکار ابتدا یک تگ div برای عنوان پست به این صورت:
کد:
    <div class=”posttitle”>

    <h2><a href=” <?PHP the_permalink() ?>”> <?PHP the_title() ?> </a></h2>
کد:
    </div>
و یک تگ هم برای محتوا به این صورت:
کد:
    <div class=”entry”>

    <?PHP the_content();?>

    </div>
میسازیم، میدونیم که این دو تگ(یعنی posttitle و entry ) با هم تشکیل گروه بزرگتری رو میدن که همان پستهای ماست پس هر دوی تگ ها رو با نام post به هم مربوط میکنیم:
کد:
    <div class=”post”>

    <?PHP if(have_posts()): while(have_posts()):the_post();?>

    <div class=”posttitle”>

    <h2><a href=” <?PHP the_permalink() ?>”> <?PHP the_title() ?> </a></h2>
    </div>

    <div class=”entry”>

    <?PHP the_content();?>

    </div>
    </div>
احتمالا این سوال پیش اومده که چرا به جای id یه تگ ها class دادم!!؟

اصلا فرقشون چیه؟

جواب اینه که فرق زیادی ندارن فقط موضوع مورد توجه اینه که class در صفحه n بار تکرار میشه اما id یگانه است!

در واقع مثل اسم عام و اسم خاص میمونه! ما فقط یک برج ایفل داریم اما n تا برج داریم!! اوکی شد؟!

اوکی…

دیگه چیز خاصی برای این درس نمیمونه جز اینکه بگم حتمن حتمن حتمن گوگل کروم رو دانلود کنید!

کاری ندارم که مرورگر خوبی هست یا نه اما برای درک اینکه ما داریم چیکار میکنیم بسیار زیاد کمکمون میکنه!

هرچند یک افزونه برای فایرفاکسی ها هم بود(اسمش رو یادم نیست اما یک bug داشت و عکسش هم یه سوسک بود:d ) که کاری که من میخوام توضیح بدم رو انجام میداد اما من کروم رو برای اینکار پیشنهاد میکنم!

با این کروم عزیز بعدها خیلی کار داریم چون میدونم خیلی ها مثل من سرعت بالایی دارن!! گفتم زودتر بگم که شروع به دانلود کنید!!
گزارش به مدیر انجمن   خارج شده است

فارسی پرس - آنجا که پارسی دوباره متولد می شود.
صفحه: [1]
  ارسال به دوستان  |  چاپ صفحه  
 
پرش به :