زمینه‌های دل‌خواه در وردپرس - بخش دوم

دوشنبه ۱۶ اردیبهشت ۱۳۸۷ @ ۱۳:۰۸

اگه هنوز نمی‌دونین زمینه‌های دل‌خواه چی هستن و چجوری ساخته می‌شن٬ قسمت اول این نوشته رو بخونین.

استفاده حرفه‌ای از زمینه‌های دلخواه:

تقربین واضحه که هیچ‌کس زمینه‌های دلخواه رو برای نشون دادن به‌صورت لیست٬ توی پوسته‌ش استفاده نمی‌کنه٬ زمینه‌های دلخواه خیلی کاربردی‌تر این حرفا هستن!

حالا می‌خوایم با استفاده از تابع get_post_meta افسار زمینه‌های دلخواه رو تو دستمون بگیریم! ساختار این تابع به‌صورت زیر هست:

get_post_meta($post->ID, 'Your Key Name Here‘,true)

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

خب٬ واسه همین‌جا بود که گفتم کلید رو باید انگلیسی نوشت! به‌جای قسمت توپُرشده باید کلید موردنظرمون رو بنویسیم٬ تا تابع مقدار کلید رو به ما بده٬ حالا می‌تونیم مثلن اونو echo کنیم یا توی دستورات شرطی‌مون ازش استفاده کنیم و…

این تابع رو باید توی حلقه‌ی وردپرس به‌کار بگیریم.

یه مثال کاربردی:

فرض کنیم می‌خوایم یه پوسته واسه یه سایت خبری طراحی کنیم٬ یه قسمت داریم به اسم مقالات که نویسنده‌ی هر مقاله باید عکسش رو هم کنار نوشته‌ش توی یه کادر که مکانش از قبل معلوم شده نشون بده٬ ما واسه این‌کار میایم یه زمینه‌ی دلخواه به‌اسم author-image می‌سازیم. حالا توی کد پوسته‌مون٬ اونجایی که عکس باید قرار بگیره می‌نویسیم:

<img src=”<?php echo get_post_meta($post->ID, 'author-image‘,true); ?>” />

حالا فقط کافیه نویسنده‌ها موقع نوشتن مطلب از لیست زمینه‌های دلخواه٬ author-image رو انتخاب کنن و آدرس عکسشون رو وارد کنن٬ دیگه خود وردپرس به‌صورت خودکار عکس رو سرجایی که توی پوسته واسش مشخص کردیم قرار می‌ده.

حالا اگه یه نویسنده یادش بره که عکسشو معرفی کنه چی؟ پوسته‌مون به‌هم می‌ریزه! برای جلوگیری از اینکار یه دستور شرطی می‌ذاریم که چک کنه آیا عکس معرفی شده یا نه:

<?php if(isset(get_post_meta($post->ID, ‘author-image‘,true))) : ?>

<img src=”<?php echo get_post_meta($post->ID, 'author-image‘,true); ?>” />

<?php endif; ?>

به‌همین ساده‌گی.

[احتمالن] ادامه دارد…

در همین رابطه: زمینه‌های دل‌خواه در وردپرس - بخش اول


 

زمینه‌های دل‌خواه در وردپرس - بخش اول

جمعه ۱۳ اردیبهشت ۱۳۸۷ @ ۲۰:۰۰

وردپرس این توانایی رو داره که به نویسنده‌ی وبلاگ اجازه بده اطلاعات اضافی رو به‌وسیله‌ی زمینه‌های دلخواه به هر نوشته‌ش اضافه کنه. به‌این اطلاعات meta-data هم گفته می‌شه.

برای مثال شما دوست دارین علاوه بر کادرهای موجود برای وارد کردن عنوان و متن نوشته٬ کادری در قسمت نوشتن مطلب داشته باشین که بتونین توش حال‌تون (mood) رو موقع نوشتن اون مطلب بیان کنین٬ یا اینکه اون زمان دارین به‌چه آهنگی گوش می‌دین. برای این‌کار شما می‌تونین از زمینه‌های دلخواه (Custom fields) استفاده کنین و اونارو زیر هر نوشته‌تون نشون بدین٬ اینطوری:

  • حالت: خوشحال
  • موسیقی: درنا - شجریان

زمینه‌های دلخواه به‌صورت کلید/مقدار ذخیره و استفاده می‌شن٬ مثلن برای حالت بالا من یه زمینه‌ی دلخواه با کلید حالت و مقدار خوشحال معرفی کردم و یه‌دونه هم با کلید موسیقی و مقدار درنا - شجریان.

این کلید‌ها جایی ذخیره می‌شن که می‌شه در نوشته‌های بعدی هم ازشون استفاده کرد٬ برای مثال بالا٬ توی نوشته‌ی بعدی اگه حالت عصبانی داشتین می‌تونین با انتخاب کلید «حالت» از لیست زمینه‌های دلخواه و دادن مقدار عصبانی به‌اون٬ اونو توی نوشته‌تون نشون بدین

تذکر: بهتره که کلیدها با حروف لاتین نوشته بشن٬ من اینجا برای جا انداختنه مطلب اونارو فارسی نوشتم.

ساختن زمینه‌ی دلخواه جدید:

1.jpg

۱- بعد از نوشتن مطلب و قبل از انتشار اون به قسمت پایین صفحه‌ی نوشتن برین و کادر زمینه‌های دلخواه رو باز کنین
۲- برای ساختن یک زمینه‌ی دلخواه جدید٬ در قسمت کلید٬ نام دلخواهتون رو بنویسین (زیر پیکان آبی) و در قسمت مقدار هم٬ مقداره موردنظرتون رو بنویسین (زیر پیکان سبز)
۳- دکمه‌ی افزودن زمینه‌ی دلخواه رو بزنین (زیر پیکان نارنجی)

استفاده از زمینه‌های دلخواه پیشین:

برای استفاده از کلیدهایی که در نوشته‌های پیشین‌تون استفاده کردین٬ کافیه توی کادر مربوط به زمینه‌های دلخواه٬ از لیستی که ظاهر شده (زیر پیکان آبی)٬ کلید موردنظرتون رو انتخاب کنین و با خالی گذاشتن فرم زیر پیکان قرمز٬ و فقط با پر کردن فرم مقدار (زیر پیکان سبز)٬ از کلید قدیمی‌تون با مقدار جدید توی نوشته‌ی جدیدتون استفاده کنین.
البته این مقداردهی ربطی به اون مقداری که واسه نوشته‌های گذشته به اون کلید دادین نداره و قبلی‌ها تغییری نمی‌کنن :)

نمایش دادن زمینه‌های دلخواه:

برای به‌نمایش درآوردن زمینه‌های دلخواه چندین راه وجود داره که ساده‌ترینش استفاده از تابع the_meta هست٬ کافیه این تابع رو توی پوسته‌تون داخل حلقه‌ی وردپرس قرار بدین:

<?php the_meta(); ?>

خروجی این تابع برای مثال بالا به‌صورت زیر هست (توی متن کد):

<ul class='post-meta'>
<li><span class='post-meta-key'>حالت:</span> خوشحال</li>
<li><span class='post-meta-key'>موسیقی:</span> درنا - شجریان</li>
</ul>

خب همون‌طور که می‌بینیم این تابع زمینه‌های دلخواه رو توی یه لیست با کلاس post-meta قرار می‌ده و هر آیتم لیست رو هم توی کلاس post-meta-key می‌ذاره٬ ما می‌تونیم برای شکیل‌تر کردن لیستی که ایجاد شده با استفاده از این کلاس‌ها٬ شمایل دلخواه خودمون رو توی css واسه‌ش تعریف کنیم.

در همین رابطه: زمینه‌های دل‌خواه در وردپرس - بخش دوم


 

حلقه‌ی وردپرس

سه شنبه ۱۰ اردیبهشت ۱۳۸۷ @ ۲۲:۳۱

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

<?php while (have_posts()) : the_post(); ?>
جای دستورات درون حلقه
<?php endwhile; ?>
جای دستورات خارج از حلقه

همون‌طور که می‌بینیم٬ حلقه‌ی وردپرس معمولن با دستور حلقه‌ی [while] شروع می‌شه و با دستور [endwhile] به‌پایان می‌رسه.

هر چیزی که بین این دوتا خط قرار بگیره توی تموم نوشته‌ها تکرار می‌شه! پس از این به‌بعد هروقت شنیدیم «درون حلقه‌ی وردپرس» یعنی چیزی که توی تموم نوشته‌ها تکرار می‌شه و بین اون دوتا خط باید قرار بگیره. [همون‌جایی که نوشته‌ی توپُره «جای دستورات درون حلقه» هست]

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

این نوشته در واقع پیش‌نیاز نوشته‌هایی هست که درآینده منتشر می‌کنم.


 

برون‌بری OPML لینک‌ها در وردپرس

جمعه ۲۳ فروردین ۱۳۸۷ @ ۱۴:۴۰

دیروز یکی از دوستان از من درخواست فایل OPML لینک‌هامو کرد تا بتونه اونارو توی وبلاگش درون‌ریزی (import) کنه٬ هرچی گشتم توی قسمت مدیریت وردپرس هیچ گزینه‌ای برای برون‌بری (export) لینک‌ها ندیدم٬ واسم یکمی عجیب بود٬ واسه همین یه جستجو زدم و خیلی زود به‌جواب رسیدم٬ برای گرفتن فایل OPML لینک‌های هر وبلاگ مبتنی بر وردپرس٬ کافیه به آدرس وبلاگ مذکور این عبارت رو اضافه کنین: wp-links-opml.php

مثلن واسه دیدن OPML لینک‌های من این آدرس رو ببینین :)

این کار توی وردپرس.کام هم شدنیه.


 

آموزش استفاده از htaccess در آپاچی تحت ویندوز

چهارشنبه ۱۶ آبان ۱۳۸۶ @ ۲۳:۵۸

ابتدا آپاچی رو متوقف (stop) کنین.

فایل پیکربندی آپاچی (https.conf) رو باز کنین و توش دنبال این خطوط به‌صورت جداگونه بگردین و با چیزی که زیرشون نوشتم جایگزینشون کنین:

#LoadModule rewrite_module modules/mod_rewrite.so

جایگزین شود با:

LoadModule rewrite_module modules/mod_rewrite.so

این خط:

#AddModule mod_rewrite.c

جایگزین شود با:

AddModule mod_rewrite.c

این خط:

AccessFileName .htaccess

جایگزین شود با:

AccessFileName ht.access

این خط:

<Files ~ "^\.ht">

جایگزین شود با:

<Files ~ "^ht\.">

هرجا این خط زیر رو دیدن:

AllowOverride None

جایگزین کنین با:

AllowOverride All

حالا شما می‌تونین از امکانات htaccess. توی آپاچی تحت ویندوز استفاده کنین٬ فقط به‌جای htaccess. باید اسم فایلتون ht.access باشه.

پی‌نوشت: فکر کنم توضیح واضحات باشه که بخوام بگم باید بعد از اتمام این مراحل آپاچی رو start کنین٬ ولی خب مجبوریم بعضی وختا توضیحاتی بر واضحات برانیم!


 

قلیان وردپرس فارسی

یکشنبه ۱۸ شهریور ۱۳۸۶ @ ۲۳:۴۹

قلیان وردپرس فارسی

قلیانی که مشاهده می‌شود سهم بسیار عمده‌ای در پیشبرد و تعالی وردپرس فارسی ایفا نموده است. لطفن در هنگام خرید یا استعمال٬ به نشان ثبت شده‌ی وردپرس فارسی بر روی قلیان دقت نمایید.

wp-logo-en-fa.jpg

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


 

آغاز به‌کار سایت رسمی وردپرس فارسی

یکشنبه ۱۱ شهریور ۱۳۸۶ @ ۰۰:۳۵

wp-persian

سایت رسمی وردپرس فارسی شروع به‌کار کرد!

الان من در حال ذوق‌مرگ شدن هستم! مانی هم همین حس رو داره!

بچه‌ها مچکریم! بچه‌ها مچکریم!


 

قالب‌ساز آنلاین برای وردپرس

پنجشنبه ۶ اردیبهشت ۱۳۸۶ @ ۰۷:۴۷

ساختن آنلاین قالب برای وبلاگهای وردپرس فقط در چند کلیک ساده!

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

حین انجام کار هم میتونین نتیجه‌ی کارتون رو بهصورت زنده، تو همون صفحه ببینین.


 

معرفی افزونه: ارتقاء وردپرس بدون درد و خونریزی

یکشنبه ۱۹ فروردین ۱۳۸۶ @ ۰۴:۰۴

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

من روش زیر رو پیشنهاد می‌کنم
با استفاده از افزونه‌ی InstantUpgrade می‌توانید بدون نیاز به دانلود و آپلود فایل‌های وردپرس جدید و تنها با یک کلیک، وردپرس خود را ارتقا دهید.
شما می‌تونید وردپرستون رو به آخرین نسخه‌ی موجود (یا نسخه‌ی انتخابی دلخواهتون) ارتقا بدید.

این افزونه چطوری کار می‌کنه؟
این افزونه وردپرس جدید رو از سرور وردپرس روی سرور شما دانلود و فایلش رو از حالت فشرده خارج می‌کنه، بعد از اون تموم فایل‌های وردپرس قدیمی شما رو (به‌جز پوشه‌ی wp-content و فایل wp-config.php) پاک و فایل‌های نسخه‌ی جدید رو جایگزین اونا می‌کنه، بعد از اون هم به‌صورت خودکار عملیات ارتقا نرم‌افزاری رو انجام می‌ده.

چگونه‌گی نصب

  • افزونه رو از این لینک دریافت کنید (نسخه‌ی فعلی ۰.۲ هست)
  • فایل رو از حالت فشرده خارج کرده و به پوشه‌ی wp-content/plugins روی سرورتون منتقل کنید
  • افزونه رو در قسمت مدیریت وردپرس فعال کنید
  • قسمت حساس کار: شما باید سطح دسترسی بعضی از فایل‌ها و پوشه‌ها رو طوری قرار بدید که توسط سرور قابل ویرایش باشن، برای اینکار از یک برنامه‌ی FTP مثل (CuteFTP) می‌تونید کمک بگیرید. (به کاربران فایرفاکس، افزونه‌ی FireFTP رو برای این‌کار پیشنهاد می‌کنم)
    لیست فایل‌ها و پوشه‌های که باید سطح دسترسی بهشون تغییر کنه:

    • پوشه‌ی اصلی وردپرس روی سرور
    • پوشه‌های wp-admin و wp-includes با تموم محتویاتشون!
    • تموم فایل‌های موجود توی پوشه‌ی اصلی وردپرس (به‌جز wp-config.php)
    • پوشه‌ی work که داخل پوشه‌ی wp-content/plugins قرار داره

    فایل‌ها و پوشه‌هایی که در بالا نام برده شد رو با برنامه‌ی FTP به CHMOD 777 تغییر بدید.

  • بعد از انجام مراحل بالا باید یک‌بار به‌روش روتین (که در ابتدای پست اشاره شد) وردپرس خودتون رو ارتقا بدید، اینکار باعث می‌شه سرور از دستکاری فایل‌ها توسط کاربرای دیگه جلوگیری کنه و امنیت وبلاگتون به‌خطر نیفته! (حتا اگه از آخرین نسخه‌ی وردپرس استفاده می‌کنید بهتره همون نسخه رو دوباره آپلود کنید و عملیات روتین رو انجام بدید)
  • اگه شما هم مثه من حال و حوصله‌ی تغییر سطح دسترسی زیرپوشه‌ها رو ندارید، به‌جز خود پوشه‌های wp-admin و wp-includes می‌تونید، زیرپوشه‌هاشون رو پاک کنید! خود افزونه در صورت عدم وجود زیرپوشه‌ها، اونا رو می‌سازه.
    مثلن من بعد از اینکه سطح دسترسی پوشه‌ی wp-includes و فایل‌های داخلش رو به ۰۷۷۷ تغییر دادم، پوشه‌های js و images رو از توش پاک کردم تا مجبور نباشم همه‌ی فایل‌های داخل اونا رو هم تغییر بدم! بعدش خود افزونه موقع ارتقا اونا رو واسم ساخت. (حواستون باشه که من گفتم زیرپوشه‌ها!!!)

خب شما افزونه رو با موفقیت نصب و پیکربندی کردید و می‌تونید از اون استفاده کنید.

نکات پیشنهادی:

  • قبل از ارتقا با استفاده از افزونه یک نشخه‌ی پشتیبان از پایگاه داده خود تهیه کنید.
  • از این افزونه جهت ارتقاهای بزرگ استفاده نکنید، منظورم از ارتقا بزرگ مثلن ارتقا از نسخه‌ی ۲.۰ به نسخه‌ی ۲.۱ هست، چون توی این تغییر نسخه‌ها هسته‌ی اصلی وردپرس تغییر پیدا می‌کنه و ممکنه بعضی افزونه‌های نصب شده با هسته‌ی جدید سازگاری نداشته باشن و منجر به ایجاد مشکلاتی بشه، بهتره برای ارتقاهای بزرگ از روش روتین استفاده کنید.
    پیشنهاد من اینه که برای ارتقاهای جزیی مثلن از ۲.۱.۱ به ۲.۱.۳ یا از ۲.۰.۷ به ۲.۰.۸ از این افزونه استفاده کنید.
  • بعد از ارتقا توسط این افزونه بهتره برای امنیت بیشتر فایل‌هایی که سطح دسترسی‌شون رو تغییر دادیم به حالت اول برگردونیم (البته انجام ندادن این‌کار دلیل بر ضعف امنیتی نیست)

مشکلات، پرسش‌ها و پاسخ‌ها:
بعضی سوالات و مشکلات متداولی که به‌وجود میاد رو با هم می‌خونیم.

  • من نمی‌تونم سطح دسترسی پوشه‌ی اصلی وردپرسم رو تغییر بدم
  • بهتره برای این کار با مدیر سرورتون تماس بگیرین و ازش بخواین اینکار رو براتون انجام بده، اگه از انجام این‌کار ممانعت کرد باید بگم، متاسفم، شما نمی‌تونید از این افزونه برای ارتقا وردپرستون استفاده کنید.
  • من با موفقیت ارتقا دادم وردپرسم رو، اما وقتی سایتم رو نگاه می‌کنم یه سری پیغام خطا واسم ظاهر می‌شه
  • این مشکل از اونجا ناشی میشه که ممکنه شما از افزونه‌هایی استفاده کرده باشید که با نسخه‌ی جدیدی که به اون ارتقا دادید سازگاری نداشته باشن، با تغییر نام افزونه‌ی مشکل‌زا (که آدرسش توی پیغام خطا دیده می‌شه) می‌تونید مشکل رو حل کنید.
    همچنین ممکنه شما از بعضی توابع توی قالبتون استفاده کرده باشین که توی نسخه‌ی جدید دیگه وجود ندارن، مثل تابع ()list_cats که توی نسخه‌های ۲.۱ و بالاتر وجود نداره. برای رفع این مشکل هم باید تابع موردنظر رو با نسخه‌ی جدیدش جایگزین کنید که می‌تونید از آدرس http://codex.wordpress.org/Template_Tags توابع موجود رو ببینید.
  • من با پیغام خطای HTTP status code -100 مواجه می‌شم
  • سرور سایت شما قادر به دریافت فایل از سرور سایت وردپرس نیست!
    البته اگه شما آخرین اخبار وردپرس رو توی داشبورد قسمت مدیریت وردپرستون ببینید نباید همچین مشکلی پیش بیاد، حال برای اینکه یه تلاش دیگه کرده باشید توی خط ۵۰ از فایل instantupgrade/upgrade.php مقدار timeout رو افزایش بدید تا به احتمال زیاد مشکلتون رفع بشه.

امیدوارم این افزونه واستون مفید واقع بشه.

پی‌نوشت: همین الان خودم با استفاده از همین افزونه از ۲.۱.۲ به ۲.۱.۳ ارتقا دادم.

آموزش نصب وردپرس:
به‌صورت اتوماتیک (از طریق Fantastico) - وبلاگ عصرونه
به‌صورت دستی - وبلاگ عصرونه


 

Widgetهای وردپرس فارسی

دوشنبه ۷ اسفند ۱۳۸۵ @ ۱۸:۴۲

توضیحات:
این افزونه دو Widgetه آرشیو و تقویم را به وردپرس شما اضافه می‌کند.

دریافت فایل:
wp-jalali-widgets.zip

نحوه‌ی نصب:
۱. فایل را از حالت فشرده خارج کرده و محتویات آن‌را به پوشه‌ی wp-content\plugins وردپرس منتقل کنید.
۲. به قسمت افزونه‌ها در بخش مدیریت وردپرس رفته و WP-Jalali widgets را فعال کنید.
۳. حال در قسمت Presentation > Sidebar Widgets دو گزینه‌ی جدید به نام‌های «آرشیو جلالی» و «تقویم جلالی» اضافه شده است.

نکته:
برای استفاده از این افزونه، حتمن باید افزونه‌ی وردپرس فارسی را نصب کرده باشید!


 

هماهنگ کردن قالب‌های چند ستونه با Widgets

یکشنبه ۲۹ بهمن ۱۳۸۵ @ ۲۰:۴۰

برای اینکه با Widgets بیشتر آشنا بشید پیشنهاد می‌کنم این دو تا نوشته رو بخونید:
Widgets چیست و چگونه آن‌را نصب کنیم؟
چگونه قالب‌های خود را با Widgets هماهنگ کنیم؟

بریم سر بحث اصلیمون، یعنی هماهنگ کردن قالب‌هایی که از چند نوار کناری استفاده می‌کنن با Widgets، تو این شرایط دو حالت ممکنه پیش بیاد:

۱. همه‌ی ستون‌های شما از نظر کدنویسی مشابه باشند
۲. ستون‌های شما از نظر کدنویسی متفاوت باشند

که ما به‌تفصیل هر دو حالت رو شرح می‌دیم.

  • حالت اول (کدنویسی مشابه):

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

اگر از نوارکناری لیستی استفاده می‌کنید:

if ( function_exists('register_sidebars') )
    register_sidebars(N);

اگر از نوارکناری غیرلیستی استفاده می‌کنید:

if ( function_exists('register_sidebars') )
    register_sidebars(N, array(
        'before_widget' => 'BEFORE_WIDGETS_CODE',
        'after_widget' => 'AFTER_WIDGETS_CODE',
        'before_title' => 'BEFORE_WIDGETS_TITLE_CODE',
        'after_title' => 'AFTER_WIDGETS_TITLE_CODE'
    ));

که در کدهای بالا به‌جای N در تابع register_sidebars تعداد نوارکناری‌هایی که می‌خواهید ایجاد شوند را بنویسید، مثلن برای به‌وجود آوردن ۲ نوارکناری داریم:

اگر از نوارکناری لیستی استفاده می‌کنید:

if ( function_exists('register_sidebars') )
    register_sidebars(2);

اگر از نوارکناری غیرلیستی استفاده می‌کنید:

if ( function_exists('register_sidebars') )
    register_sidebars(2, array(
        'before_widget' => 'BEFORE_WIDGETS_CODE',
        'after_widget' => 'AFTER_WIDGETS_CODE',
        'before_title' => 'BEFORE_WIDGETS_TITLE_CODE',
        'after_title' => 'AFTER_WIDGETS_TITLE_CODE'
    ));

نکته: برای آگاهی از مفهوم نوارهای لیستی و غیرلیستی و همچنین آرگومان‌هایی که در حالت غیرلیستی در تابع register_sidebars استفاده شده است به نوشته‌ی قبلی من در همین مورد مراجعه کنید.

حال برای صدا زدن نوارهای کناری که تعریف کرده‌ایم همچون نوشته‌ی قبلی از تابع dynamic_sidebar به‌صورت شرطی در ابتدا و انتهای نوارکناری معمولی‌مان استفاده می‌کنیم:

ابتدا:

<?php if ( !function_exists('dynamic_sidebar')  || !dynamic_sidebar(شماره مشخصه نوار کناری) ) : ?>

انتها:

<?php endif; ?>

که به‌جای «شماره مشخصه نوار کناری» در تابع dynamic_sidebar در ابتدای نوار کناری معمولی، عدد مشخصه نوارکناری مورد نظرمان را می‌گذاریم، مثلن برای فراخوانی نوار شماره ۲ داریم:

در ابتدا:

<?php if ( !function_exists('dynamic_sidebar')  || !dynamic_sidebar(2) ) : ?>
  • حالت دوم (کدنویسی متفاوت):

برای این حالت به‌تعداد نوارکناری‌هایی که می‌خواهیم تعریف کنیم باید از تابع register_sidebar استفاده کنیم و هر نوار را به‌دلخواه نامگذاری کنیم.

برای مثال من دو نوار می‌خوهم تعریف کنم که نام یکی را “Avali” و نام دیگری را هم “Dowomi” می‌گذارم، که اولین نوارکناری به‌صورت لیستی است و نوار دوم به‌صورت غیرلیستی، در فایل functions.php می‌نویسیم:

if ( function_exists('register_sidebar') ) {
	register_sidebar(array(
		'name' => 'Avali'
	));
	register_sidebar(array(
		'name' => 'Dowomi',
		'before_widget' => 'BEFORE_WIDGETS_CODE',
        'after_widget' => 'AFTER_WIDGETS_CODE',
        'before_title' => 'BEFORE_WIDGETS_TITLE_CODE',
        'after_title' => 'AFTER_WIDGETS_TITLE_CODE'
	));
}

بدین‌ترتیب دو نوارکناری با نام‌های Avali و Dowomi تعریف کردیم، حال برای فرخوانی آنها در قالب خود طبق معمول از تابع dynamic_sidebar استفاده می‌کنیم، و نام نوارکناری موردنظرمان را به‌عنوان آرگومان ورودی تابع معرفی می‌کنیم.

برای فراخوانی اولین نوارکناری داریم:

< ?php if ( !function_exists('dynamic_sidebar')  || !dynamic_sidebar('Avali') ) : ?>
	محتویات نوارکناری اول در حالت عادی
< ?php endif; ?>

و برای دومی هم داریم:

< ?php if ( !function_exists('dynamic_sidebar')  || !dynamic_sidebar('Dowomi') ) : ?>
	محتویات نوارکناری دوم در حالت عادی
< ?php endif; ?>

تموم شد، همین! :)

مرتبط:
Widgets چیست و چگونه آن‌را نصب کنیم؟
چگونه قالب‌های خود را با Widgets هماهنگ کنیم؟


 

چگونه قالب‌های خود را با Widgets هماهنگ کنیم؟

پنجشنبه ۲۶ بهمن ۱۳۸۵ @ ۲۰:۰۰

با فرض بر اینکه شما Widgets را [بر اساس آموزش فارسی] نصب و فعال کرده‌اید، می‌خواهیم چگونه‌گی هماهنگ کردن قالب‌های مختلف با این افزونه را شرح دهیم.

برای این‌کار:

  • باید به وردپرس بفهمانیم که قالب ما از Widgets پشتیبانی می‌کند تا یک زیرشاخه به‌نام Sidebar Widgets به قسمت Presentation در بخش مدیریت وردپرس اضافه شود.
  • باید کدهای مربوط به Widgets را در قالبمان قرار دهیم.

خب برای اینکه به وردپرس بگوییم که می‌خواهیم از Widgets استفاده کنیم اول باید بدانیم قالبمان از چه مدل نوار کناری استفاده می‌کند، اکثر قالب‌ها از نوارهای لیستی استفاده می‌کنند، برای مثال کد زیر نمونه‌ای از نوار کناری لیستی است:

<ul id="sidebar">   <li id="about">

<h2>About</h2>

<p>This is my blog.</p>

</li>

<li id="links">

<h2>Links</h2>

<ul>

<li><a href="http://example.com">Example</a></li>

</ul>

</li>

</ul>

که در آن عناصر بوسیله‌ی تگ‌های <li> از هم جدا می‌شوند و عناوین در تگ <h2> قرار می‌گیرند.
اگر نوار کناری ما از لیست‌ها برای نشان دادن محتویاتش استفاده کند ما به ساده‌گی می‌توانیم قالب خود را با Widgets هماهنگ کنیم:

۱. فایل functions.php را در پوشه‌ی قالب خود بیابید (اگر وجود ندارد ایجاد کنید) و کدهای زیر را به فایل اضافه نمایید:

<?phpif ( function_exists('register_sidebar') )

register_sidebar();

?>

با این‌کار به وردپرس فهماندیم که ما می‌خواهیم از Widgets استفاده کنیم.

۲. در پوشه‌ی قالب خود فایل sidebar.php را انتخاب نموده و خطوط زیر را به ابتدا و انتهای لیست آن اضافه نمایید:

ابتدا:

<?php if ( !function_exists('dynamic_sidebar')  || !dynamic_sidebar() ) : ?>

انتها:

<?php endif; ?>

که کد قبلی که مثال زدیم به‌صورت زیر درمی‌آید:

<ul id="sidebar"><?php if ( !function_exists('dynamic_sidebar')  || !dynamic_sidebar() ) : ?>

<li id="about">

<h2>About</h2>

<p>This is my blog.</p> </li>

<li id="links">

<h2>Links</h2>

<ul>

<li><a href="http://example.com">Example</a></li>

</ul>

</li>

<?php endif; ?>

</ul>

این کدها یک شرط برای وردپرس تعیین می‌کند که اگر Widgets فعال بود آن‌ها را نشان دهد و درغیراین‌صورت نوار کناری را به حالت ساده (بدون Widgets) نشان دهد.

حال اگر نوار کناری ما از لیست‌ها استفاده نکند (مثل نوار کناری قالب فعلی من) چه باید کرد؟

۱. فایل functions.php را در پوشه‌ی قالب خود بیابید (اگر وجود ندارد ایجاد کنید) و کدهای زیر را به فایل اضافه نمایید:

<?phpif ( function_exists('register_sidebar') )

register_sidebar(array(

'before_widget' => 'BEFORE_WIDGETS_CODE',

'after_widget' => 'AFTER_WIDGETS_CODE',

'before_title' => 'BEFORE_WIDGETS_TITLE_CODE',

'after_title' => 'AFTER_WIDGETS_TITLE_CODE'

));

?>

و مقادیر زیر را جایگزین کنید:

  • به‌جای BEFORE_WIDGETS_CODE کدهایی که قبل از یک بلوک Widget قرار می‌گیرند
  • به‌جای AFTER_WIDGETS_CODE کدهایی که بعد از یک بلوک Widget قرار می‌گیرند
  • به‌جای BEFORE_WIDGETS_TITLE_CODE کدهایی که قبل از عنوان یک Widget قرار می‌گیرند
  • به‌جای AFTER_WIDGETS_TITLE_CODE کدهایی که بعد از عنوان یک Widget قرار می‌گیرند

برای مثال، کد یکی از بلوک‌های نوار کناری من به‌صورت زیر است:

<div class="blocks"> <div class="tl"></div>

<div class="tc"></div>

<div class="tr"></div>

<div class="m">

<div class="title">عنوان</div>

محتویات بلوک

</div>

<div class="bl"></div>

<div class="bc"></div>

<div class="br"></div>

</div>

حال من باید در فایل functions.php قالبم اینگونه بنویسم:

<?phpif ( function_exists('register_sidebar') )

register_sidebar(array(

'before_widget' => '<div class="blocks">

<div class="tl"></div>

<div class="tc"></div>

<div class="tr"></div>

<div class="m">',

'after_widget' => '</div>

<div class="bl"></div>

<div class="bc"></div>

<div class="br"></div>

</div>',

'before_title' => '<div class="title">',

'after_title' => '</div>'

));

?>

۲. باید sidebar.php را هم ویرایش کنیم که مانند مثال قبل کدهای زیر را به ابتدا و انتهای کدهای موجود در نوار کناریمان اضافه می‌کنیم:
ابتدا:

<?php if ( !function_exists('dynamic_sidebar')  || !dynamic_sidebar() ) : ?>

انتها:

<?php endif; ?>

در نتیجه برای مثال بالا داریم:

<?php if ( !function_exists('dynamic_sidebar')  || !dynamic_sidebar() ) : ?><div class="blocks">

<div class="tl"></div>

<div class="tc"></div>

<div class="tr"></div>

<div class="m">

<div class="title">عنوان</div>

محتویات بلوک ۱

</div>

<div class="bl"></div>

<div class="bc"></div>

<div class="br"></div>

</div>

<div class="blocks">

<div class="tl"></div>

<div class="tc"></div>

<div class="tr"></div>

<div class="m">

<div class="title">عنوان</div>

محتویات بلوک ۲

</div>

<div class="bl"></div>

<div class="bc"></div>

<div class="br"></div>

</div>

<?php endif; ?>

پس ما آموختیم که چگونه انواع قالب‌ها را با Widgets هماهنگ کنیم!
حال می‌توانیم به زیرشاخه‌ی Sidebar Widgets در قسمت Presention در بخش مدیریت وردپرس رفته و کار با Widgets را آغاز کنیم و از نتیجه‌ی کار لذت ببریم :)

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

مرتبط:
Widgets چیست و چگونه آن‌را نصب کنیم؟
هماهنگ کردن قالب‌های چند ستونه با Widgets


 

Widgets چیست و چگونه آن‌را نصب کنیم؟

پنجشنبه ۲۶ بهمن ۱۳۸۵ @ ۱۶:۲۷

Widgets چیست؟

Widgets نام افزونه‌ای برای وردپرس می‌باشد که با استفاده از آن می‌توان به‌سادگی بلوک‌ها و محتویات نوار کناری را کنترل، ایجاد و یا جابه‌جا کرد!
برای نمونه شما می‌خواهید بدون ویرایش کدهای قالب، آرشیو ماهیانه، آخرین نظرات، دسته‌بندی‌ها یا… را در نوار کناری خود داشته باشید و بتوانید اولویت نمایش آنها را انتخاب کنید، این‌کار به‌وسیله‌ی widgets به‌ساده‌گی امکان‌پذیر است.
همچنین این افزونه امکان خواندن RSS یا نوشتن بلوک‌های متنی را به‌ساده‌گی هرچه تمام‌تر ایجاد می‌کند.

چگونه Widgets را نصب کنم؟

۱. فایل مربوطه را دریافت کنید:

۲. فایل را از حالت فشرده خارج کرده و محتویات آن‌را طبق دستورات زیر در پوشه‌ی مخصوص خود قرار دهید.

  • پوشه‌ی widgets را در wp-content قرار دهید.
  • از درون این پوشه فایل rss.png را به پوشه‌ی wp-includes/images منتقل کنید.
  • اگر از وردپرس ۲ استفاده می‌کنید پوشه‌ی scriptaculous را به wp-includes/js منتقل کنید و اگر از وردپرس ۲.۱ استفاده می‌کنید، نیازی به انجام این‌کار ندارید چون در نسخه‌ی ۲.۱ به‌صورت پیش‌فرض این پوشه در wp-includes/js وجود دارد.

حالت قرار گرفتن فایل‌ها به صورت شماتیک:

- wp-content - plugins

- widgets

| delicious.php

| gsearch.php

| widgets.php

- wp-includes

- images

| rss.png

- js

- scriptaculous

| builder.js

| controls.js

| dragdrop.js

| effects.js

| MIT-LICENSE

| prototype.js

| scriptaculous.js

| slider.js

| unittest.js

۳. در بخش مدیریت وردپرس به قسمت افزونه‌ها (plugins) رفته و Sidebar Widgets را فعال کنید.

تا اینجا شما افزونه را نصب کرده‌اید اما هیچ تغییری را در قسمت مدیریت مشاهده نمی‌کنید چون برای استفاده از widgets قالب شما نیز باید از آن پشتیبانی کند.

نحوه‌ی اضافه کردن widgets به قالب را در پست‌های بعدی شرح خواهم داد.

مرتبط:
چگونه قالب‌های خود را با Widgets هماهنگ کنیم؟
هماهنگ کردن قالب‌های چند ستونه با Widgets


 

پلاگین فارسی: جستجو و جایگزینی

پنجشنبه ۳ فروردین ۱۳۸۵ @ ۱۷:۲۰

با این پلاگین می‌تونید توی عنوان، متن و چکیده پست‌ها، همچنین متن نظرات و نام نظردهندگان دنبال عبارتی بگردید و اونو با عبارتی دیگه تعویض کنید.
واسه تعویض کدهای HTML هم می‌تونید از این پلاگین استفاده کنید.

واسه‌ی نصب هم کافیه مراحل زیر رو دنبال کنید

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

اصل این پلاگین رو برادر مارک کانینگهام نوشته بودن، بنده هم قسمت جستجو در نام نظردهندگان و متن نظرات رو بهش اضافه کردم و براش میل زدم، اونم ورژن جدیدش (۱.۱) رو بیرون داد که اینی که الان می‌بینید هست، البته من فارسیش هم کردم که می‌تونید از لینک زیر نسخه‌ی فارسی رو دانلود کنید!

دانلود


 

قالب بهار

چهارشنبه ۲۴ اسفند ۱۳۸۴ @ ۲۳:۲۲

از سر بیکاری نشستم قالب Almost Spring رو رفع ایراد و فارسی کردم، اسمشو هم گذاشتم «بهار»!

دانلود


 

وردپرس ۲.۰.۱

چهارشنبه ۱۲ بهمن ۱۳۸۴ @ ۱۰:۳۷

همین چند ساعت پیش وردپرس ۲.۰.۱ به‌صورت رسمی منتشر شد!
به گفته‌ی خود بروبچه‌های تیم وردپرس ۱۱۴ ایراد (bug) توی این نسخه برطرف شده.
با پایگاه داده MySQL 5 هم سازگار شده، ویرایشگر متنش هم بهبود پیدا کرده!

دانلود کنین!


 

آژاکسیزاسیون

چهارشنبه ۱۴ دی ۱۳۸۴ @ ۰۲:۱۹

آقا ما امتحانی، واسه تفنن از خودمون آژاکس در وکردیم واسه این قالب وبلاگی که می‌بینید! البته کد اصلیش ماله خودم نیست ولی خیلی بهش ور رفتم تا اینجوری شده!

اولیش قسمت جستجو (همون Search) هست که الان از خودش آژاکس در وکنه ده نتیجه‌ی اول جستجو رو و دومیش هم کامنتاس که آژاکسیزه شده!

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

پی‌نوشت: در مورد این قسمت جستجو یه توضیحی انگار باید بدم! ببینین شما یه کلمه‌ای رو تایپ کنین اما اینتر رو نزنین!! شاید یک ثانیه هم طول نکشه که اون پایین می‌نویسه «در حال جستجو…» بعد از اون یه خورده که صبر کنین نتایج جستجو رو همون پایینه جعبه‌ی جستجو واستون نمایش می‌ده!
زیرشون هم یه دکمه‌ی «نتایج کامل جستجو» هست که اگه بزنین متن کامل پستایی که پیدا کرده رو نشون می‌ده! افتاد الان؟!

پی‌نوشت: آژاکس کامنتا مشکل داشت، برشداشتم!


 

بلاگرولینگ و به‌روزشده‌ها

چهارشنبه ۲۳ آذر ۱۳۸۴ @ ۰۲:۱۴

این تیریپ «فقط به‌روز‌شده‌ها» رو با کد زیر می‌تونین استاد کنین فقط توی خط سوم بجای «KEY» باید شناسه‌ی بلاگرولینگ خودتونو بنویسید که یه ترکیبی از اعداد و حروفه شبیه این برای مثال:

۷۸۰f6b74a7580d333295f8d26ad167ff

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

البته اصل این کدی که پایین مشاهده می‌کنین متعلق به آقای شایافر هست که قبلن برای برداشتن نوشته‌ی “Powered by blogrolling” استفاده می‌کردم اما الان به استفاده‌ی بهینه رسوندمش! :دی

برای استفاده از این کد باید توی تنظیمات بلاگرولینگتون کاراکتری رو که بعد از لینک به‌روز شده نشون میده رو حتمن * انتخاب کنید، یا اگه چیز دیگه‌ای انتخاب کردید توی خطی که به‌صورت توپُر مشخص کردم باید علامت * رو به چیزی که به‌دلخواه انتخاب کردید تغییر بدید، الته باید بگم که چون اون کاراکتر (حالا هرچی که باشه) نشون داده نمیشه هیچ تاثیری نداره توی خروجی و بهتره همون ستاره انتخاب کنین (آخرت دموکراتم من!)

اینشم خیلی تابلوئه که این یه کد phpه و فقط توی صفحات php میشه ازش استفاده کرد پس برای پرشین بلاگ و بلاگر و… کاملن بی‌استفادس، توی ام‌تی هم فقط واسه کساییکه از صفحات داینامیک php استفاده می‌کنن کاربرد داره و توی shtml و این بچه‌بازیا جواب نمیده! (ام‌تیه دیگه این‌جورجاها معمولن کم میاره)
دیگه فک نکنم نیاز به توضیح اضافی داشته باشه، کد رو می‌تونین از اینجا به‌صورت فایل متنی دریافت کنین.


<?php
//replace the value of $url with your own link from the code generator
$url = “http://rpc.blogrolling.com/display_raw.php?r=kEY”;
$blogroll = "";
if(
$my_blogroll = @fopen($url, “r”)) {
    while(!
feof($my_blogroll)){
    
$blogroll .= fgets($my_blogroll, 255);
}
   
preg_match_all(“/(<a[^>]*>.*<\/a>)(\*)?/”, $blogroll, $matches);
   for (
$i=0; $i<count($matches[0]) - 1; $i++) {
    if (
$matches[2][$i] == "*") {//check for updates
          echo $matches[1][$i];
          echo
“<br />\n”;
      }
   }
} else {
echo
"Blogrolling is down :(";
}
?>


 

یاهو و وردپرس

یکشنبه ۱۳ آذر ۱۳۸۴ @ ۱۷:۱۹

امروز که Dashboardه اینجا رو چک کردم، خبر استفاده از وردپرس در وبلاگ یاهو واقعن واسم جالب بود! بنا به توضیحاتی که Matt صاحابه وردپرس داده این اولین باریه که یاهو از یه برنامه‌ی تحت وب نوشته‌ی دیگران (Third party web application) روی دامنه‌ی یاهو دات کام استفاده می‌کنه، دلیلی هم که اورده اینه که از نظر امنیتی وردپرس با معیارهای یاهو هماهنگ بوده و تونسته اونا رو از این لحاظ راضی نگه داره!
توی خود بلاگ یاهو هیچ لینکی به سایت وردپرس دیده نمیشه اما این از نظر قوانین کد آزاد (Open Source) هیچ ایرادی نداره، همین که از وردپرس استفاده کردن خودش نشونه‌ی قدرتشه!
البته توی سورس صفحه اگه نگاه کنیم به این خط می‌رسیم که گویای همه‌چیز است و خود ناچیز!

<meta name="generator" content="WordPress 1.5.2" />

قبلن هم بلاگ شرکت اپل بر پایه‌ی وردپرس بالا اومده بود! حال می‌کنی قدرتو؟!
حالا این ام تی پرستا هی بگن ام تی خوبه! عععق!!!

تکمیل: انگار مانی و مرتضا زودتر از من خبرشو داده بودن!


 

مرجع فارسی توابع وردپرس برای طراحان وب

سه شنبه ۸ دی ۱۳۸۳ @ ۰۲:۵۱

سلام ، یه چند روزی نبودم داشتم یه مقاله همچین طویل مینوشتم در مورد وردپرس تا بروبچ بتونن راحت تر با این سیستم مشتی کار کنن و همچنین قالبهای فارسی بیشتری براش ساخته بشه ! روی این مقاله حدود ۴ روز وقت گذاشتم.

در این مقاله ما فرض رو بر این میگیریم که شما میدونید وردپرس چیه و با اصلاحات عادی طراحی وب آشنایی دارید ( اگه هم آشنایی ندارید با هم آشناتون میکنم ! ) ، هدف اصلی این مقاله ساده تر کردن کار طراحان برای ساختن قالب برای وردپرسه ، من تقریبا تمامی توابع مورد نیاز برای طراحی رو در اینجا توضیح دادم…

پی‌نوشت : مقاله رو با اضافه کردن چند مثال برای توابعی که احتیاج به مثال داشتن ، کامل‌تر کردم ;)
[ادامه‌ی مطلب...]


 

نوشته‌های این بلاگ کپی‌راست داره!

در جستجوی مرزهای انسانیت

درباره‌ی خودم

مباحث مورد علاقه‌م بیشتر تو مایه‌های جامعه‌شناسی٬ قوم‌شناسی و فرهنگ ملل هستن٬ اصلاح‌طلب مستقل هستم و تا ابد دانش‌جو.
و در مورد اینکه چرا اسم گناهکار رو انتخاب کردم هم اینجا نوشتم که چرا گناهکار؟
پست الکترونیکم: gonahkarblog ات جیمیل