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

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

Post formats یا ساختار نوشته های وردپرس از نسخه ۳.۱ به بعد به عنوان یک استاندارد برای ایجاد و نمایش نوشته های مختلف در هسته وردپرس قرار گرفت. این ساختارها به طراح و توسعه دهنده وردپرس این امکان را می دهد تا بتواند برای هر نوع پستی ظاهری متفاوت را ایجاد کند. در این آموزش از سری آموزش های وردپرس سایت روکش می خواهیم شما را با ساختار نوشته های وردپرس آشنا کنیم و نحوه افزودن Post formats به قالب های وردپرس را به شما نشان دهیم, پس با ما همراه باشید.

گام اول : افزودن قابلیت ساختار نوشته ها (post format) به وردپرس

در ابتدا باید قابلیت ساختار نوشته ها را به وردپرس اضافه کنید. برای این کار کافی است کد زیر را در فایل فانکشن (functions.php) قرار دهید و آن را ذخیره نمایید تا این قابلیت به قالب سایت شما افزوده شود.

add_theme_support('post-formats', array(
'gallery',
'link',
'image',
'quote',
'status',
'video',
'audio',
'chat') );

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

<?php
// کدها اینجا قرار گیرند
?>

گام دوم: استفاده از حلقه مطالب وردپرس بر حسب ساختار نوشته ها

حال باید حلقه مطالب وردپرس را در صفحه اصلی (index.php) و همچنین آرشیو دسته بندی ها, برچسب ها و آرشیو ماهیانه تغییر دهید. برای این کار کافی است تا از کد زیر به جای کد های قبلی استفاده نمایید.

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', get_post_format() ); ?>
<?php endwhile; ?>
<?php endif;  ?>

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

زمانی که از حلقه ای که در گام قبلی معرفی کردیم برای فراخوانی مطالب وردپرس استفاده کنید, در ابتدا اگر برای مطلبی که منتشر کرده اید ساختار خاصی را انتخاب نکرده باشید یعنی ساختار آن نوشته روی حالت استاندارد باشد وردپرس به دنبال محتویات فایل content.php می گردد و طبق کدهایی که در این فایل برای فراخوانی مطالب استفاده کرده اید آن مطلب را در قالب نشان می دهد. اما اگر برای مطالب منتشر شده یک نوع ساختار, مانند پیوند را انتخاب کرده باشید وردپرس در ابتدا به دنبال فایل content-link.php می گردد اگر این فایل موجود بود آن مطلب طبق کد های موجود در همین فایل فراخوانی می شود اما اگر فایل content-link.php موجود نبود آن مطلب طبق محتویات فایل content.php نشان داده می شود.
برای بقیه ساختار ها هم همین موضوع وجود دارد پس برای اینکه برای هر کدام از ساختار نوشته های وردپرس ظاهری منحصر به فرد را ایجاد کنید باید فایل های زیر را بسازید و طبق شکل و markup html ای که نیاز دارید محتویات مطلب را فراخوانی کنید.

content.php 
content-aside.php
content-image.php 
content-link.php
content-status.php 
content-quote.php
content-chat.php
content-video.php
content-audio.php
content-gallery.php

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

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

<li id="archives" class="widget-container">
<h3 class="widget-title">آرشیو ساختار نوشته ها</h3>
<ul>
<li><a href="<?php echo get_post_format_link('link'); ?>">پیوند ها</a></li>
</ul>
</li>

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

یک کار جالب دیگر با استفاده از دستور های شرطی وردپرس

با استفاده از دستور شرطی زیر می توانید یک متن, آیکون یا المان را تنها برای یک ساختار مشخص نشان دهید.

<?php if(has_post_format('link',$post_id)): ?>
<stong>این یک لینک است</stong>
<?php endif; ?>

باید این دسنور شرطی در حلقه های وردپرس قرار داده شود.


یک نمونه آزمایشی : افزودن و استفاده از ساختار پیوند های وردپرس

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

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

add_theme_support('post-formats', array('link') );

حال کد بالا را در فایل فانکشن قرار دهید و فایل فانکشن را ذخیره کنید. سپس فایل index.php را باز کنید و حلقه مطالب وردپرس را پیدا کنید. کد های موجود در بین حلقه وردپرس را بردارید و در فایل content.php (این فایل باید در فولدر قالب فعلی ایجاد شود) ذخیره نمایید.

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<!-- تمام کد های داخلی حلقه مطالب وردپرس را از این مکان بردارید-->
<?php endwhile; ?>
<?php endif;  ?>

حال به جای کد هایی که از حلقه وردپرس برداشتید کد زیر را قرار دهید.

<?php get_template_part( 'content', get_post_format() ); ?>

سپس در فولدر قالب فعلی سایت خود, یک فایل با نام content-link.php ایجاد کنید و کد های زیر را در آن قرار دهید.

<div id="post-<?php the_ID(); ?>" class="post link-format">
<h2 class="entry-title">
<a href="<?php echo get_the_content(); ?>" title="لینک مستقیم به <?php the_title(); ?>" rel="bookmark">
<?php the_title(); ?>
</a>
</h2>
</div>  

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

آموزش کامل استفاده از ساختار نوشته های وردپرس + افزرودن به قالب

نمایش ساختار نوشته ها در بخش ویرایش مطلب وردپرس


آموزش کامل استفاده از ساختار نوشته های وردپرس + افزرودن به قالب

تغییر ساختار نوشته های وردپرس

همانطور که می بینید دو نوع ساختار تعریف شده است یکی استاندارد که محتویات آن از طریق فایل content.php فراخوانی می شود و دیگری پیوند ها می باشد که اطلاعات آن از طریق فایل content-link.php فرخوانی می شود. حال برای تست کردن ساختار پیوند ها به شکل زیر یک مطلب ارسال کنید.

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

آموزش کامل استفاده از ساختار نوشته های وردپرس + افزرودن به قالب

پس ار انتشار این مطلب خواهید دید که تنها یک لینک نشان داده می شود که عنوانش, عنوان مطلب شما و آدرس لینکش, آدرس لینکی است که در بخش متن نوشته وارد کردید.

آموزش کامل استفاده از ساختار نوشته های وردپرس + افزرودن به قالب

یک نمونه ساده از ساختار پیوند های وردپرس


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

دیدگاه کاربران

  1. لطفا بگید چه طوری باید ورد پرس رو دالود کنم
    یعنی از چه سایتی بهتره
    و چه جوری می تونم یه فابلfunctions.phpبسازم و تو کد های سایتم قرار بدم
    و دقیقا بای کجای کد ها قرار بدم یعنی کجای کد های اچ تی ام ال
    فکر کنم منطورم رو رسوندم


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

    • سعید شعبانی

      ۱- برای دانلود وردپرس می تونید از سایت وردپرس فارسی , wordpress.org یا روکش استفاده کنید.

      ۲- برای ساخت فایل فانکشن هم تنها کافی است یک ویرایشگر متن مثل notpad را باز کنید بعد کد زیر را داخل اون بگذارید و با فرمت php و نام functions ذخیره نماییید.

       <?php
      
      ?>
      

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

  2. امین

    خیلی مفید بود..
    فقط یک سوال؟
    اسامی ای برای هر یک از ساختار ها در فایل functions.php انتخاب شده قابل تغییر هست یا اینکه باید همون رو استفاده کرد..مثلا شما در فایل functions.php اینگونه تعریف کردید: { array(‘link’) }ولی در بخش مدیریت عنوان ساختار “پیوند” نمایش داده شده…
    امیدوارم منظور رو رسونده باشم…
    تشکر از مطلب مفیدتون…

    • سعید شعبانی

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

      The Post Formats feature provides a standardized list of formats that are available to all themes that support the feature. Themes are not required to support every format on the list. New formats cannot be introduced by themes or even plugins. The standardization of this list provides both compatibility between numerous themes and an avenue for external blogging tools to access this feature in a consistent fashion.

      اما شما می تونید با استفاده از دستورات شرطی دسته بندی ها یا برچسب های وردپرس قالب های جدیدی را برای مطالب ایجاد کنید.

  3. […] یک از نوشته ای این قالب زیبا یک آیکون قرار گرفته است که نوع نوشته آن پست را نشان می دهد. قالب Lingonberry به صورت تخت (Flat) طراحی […]

  4. فطرس

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

  5. فطرس

    سلام
    آقا پس چی شد؟ من احتیاج به کمک دارم. چرا جواب بنده رو نمیدید.؟

  6. فطرس

    سلام.ممنون که جوابم رودادید
    دستم به دامنتون آبرو ی بنده در خطره. اینو می دونم و لی فایلهای بیشتر از ۸ مگابایت رو نمیشه از این طریق تو وبلاگ قرار داد. فایهای من هم هر کدوم بیشتر از ۱۰۰ مگابایت حجم دارند. به من گفتن باید لینک دانلود رو تو سایت قرار بدم.ولی بنده که گفتم خیلی مبتدی هستم.در ضمن می خوام فایلها قابل مشاهده هم باشه.
    به شدت نیازمند یاری شما هستم.
    منتظرم برادر.

  7. فطرس

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

  8. roz

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

  9. خیلی عالی بود بسیار ممنون

  10. رها

    سلام و عرض ادب
    خواهش میکنم منو در این مورد خاص راهنمایی کنید
    جایی خوندم که
    اگر ما یک دسته (category) ایجاد کردیم باید یک کپی از فایل category.php بگیری م و با نامی که معادل slug قرار میدیم فایل category را تغییر نام بدیم یعنی اگر یک دسته با نام مقالات و slug را article قرار دادیم باید یک کپی از category.php با تغییر نام category-article.php بسازیم و در ریشه قالب کپی کنیم
    حالا اول میخوام از شما سوال کنم که ایا چنین چیزی صحیح هست یا خیر و اگر صحیحه خوب بعدا در صورتی به همین دسته مقالات یه زیر دسته اضافه کردیم نتیجه به چه شکلی میشه
    مثلا من یک زیر دسته بنام مقالات علمی و slug را با نام scincearticle میسازم که زیر دسته artice یا همون دسته مقالات هست که در مرحله اول ساختم
    خوب حالا ایا اون کپی که از category.php میگیرم با چه طور نامگذاری بشه
    ۱-category-article-scincearticel.php
    یا اینکه دیگه نیاز نیست نام پدر این دسته هم باشه و فقط باید نامش را
    category-scincearticle.php بگذاریم و در ریشه قالب سایت کپی کنیم
    واقعا لطف میکنید اگر در این خصوص منو راهنمایی کنید
    با شتکر و ارزوی توفق

    • سعید شعبانی

      شما با ساخت category-slug.php می تونید فقط قالب اون دسته را تغییر بدید و برای تغییر قالب زیر مجموعه های اون دسته باید فایل های جداگانه ای ایجاد کنید. برای اینکه دسته های فرزند هم از قالب دسته والد استفاده کنند می تونید از کد معرفی شده در این مطلب استفاده کنید. برای آشنایی با ساختار کلی قالب های وردپرس هم پیشنهاد می کنم حتما نگاهی به مستندات وردپرس بندازید.

  11. رها

    سلام
    واقعا لطف کردید , بسیار سپاسگذارم
    یه سوال دیگه دارم و این سوال واقعا حل کردنش برابر با یه دنیا ارزش داره , امیدوارم کمک کنید تا بتونم یه راه حلی براش پیدا کنم
    من یه هاست رایگان با ۱ گیگ فضای هارد دیسک گرفتم برای تمرین ولی قصد دارم فعلا و تا دستم با وردپرس کمی اشنا میشه از همین سرور استفاده کنم – اما چون حجم کمه بعد از حدودا ۱۰ تا پست جدید و اضافه کردن ۲ عکس به هر پست حجمی حدود ۲۰۰ مگ را از دست دادم و اگه بخوام اینطوری پیش برم یک ماهه دیگه تمام میشه
    حالا میخواستم بدونم من چطور میتونم تصاویرم را در گوگل درایو یا اسکای درایو اپلود کنم و در قسمت ادمین ادیتور پست یه ایکن اضافه کنم با کلیک روی اون لینک عکس مورد نظر را وارد کنم و بعد از انتشار پست بجای لینک تصویر مورد نظر لینک داده شده بنمایش در بیاد
    من چند سال پیش تر در یه انجمن وردپرسی مطلب مینوشتم که این قابلیت را در toolbar پنل ادمین جایی new posts را مینوشتیم داشت و ماتصاویر را اول در دراپ باکس آپلود میکردیم و بعدا به تصاویر لینک میدادیم و بعد از انتشار پست بجای لینک ها تصاویر نمایش داده میشدند اما در toolbar پنل ادمین وردپرس من نیست با اینکه وردپرس نسخه اخر ۳.۹.۱ هست
    دوست عزیز واقعا لطف میکنید اگر راهنمایی کنید تا این مشل را حل کنم چون شدیدا بهش نیاز مندم
    ادم کچل باشه اما هاست ضعیف و مستضعفی نداشته باشه
    با تشکر و ارزوی توفیق روز افزون

    • سعید شعبانی

      هاست رایگان که کلا مشکل دارند و نمیشه بهشون اطمینان کرد ولی نباید با ۱۰ تا پست ۲۰۰ مگ از فضای هاست شما پر بشه, شاید تصاویری که آپلود می کنید حجم بالایی دارند. برای درج عکس آپلود شده از سایت های دیگه هم می تویند اول دکمه افزودن پرونده چند رسانه ای را بزنید بعد از سمت راست گزینه افزودن از نشانی را انتخاب کنید و آدرس عکس را وارد کنید. به صورت دستی هم خودتون می تونید تگ img را برای عکسی که می خواهید داخل مطلب دیده بشه ایجاد کنید.

  12. رها

    ممنونم دوست عزیز
    لطف کردید
    دنبال همین نکته بودم که از کجا به تصاویر لینک بدم
    لطف کردید
    موفق و پیروز باشید

  13. یاشار

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

  14. ناصر

    سلام، یه قالبی دارم که متاسفانه این مطالبی که شما گفتید رو توش پیدا نکردم که بتونم تغییر بدم
    ***
    وقتی ساختار ویدئو رو انتخاب میکنم تو صفحه ی ویدئو وارد میشه. ولی برای سایر ساختارها از فرمت استاندارد وبلاگ استفاده میکنه. من میخواستم وقتی ساختار تصویر یا گالری یا موزیک رو انتخاب میکنم هم با همون فرمتی که وارد بخش ویدئو میشه نشون بده. ممنون میشم اگه راهنمایی کنی

  15. امین سلام زاده

    سلام ممنون از توضیحاتتون.
    اطلاعاتی راجب نحوه ساخت ساختار دلخواه دارید؟
    یعنی چطوری میشه یه ساختاری مثل ساختار گالری ساخت؟ و متاباکس های داخلش رو بصورت سفارشی ایجاد کرد؟

  16. امیرحسین

    سلام
    من یه موضوع را متوجه نشدم. در وردپرس هرگاه که به یکی از مطالب کلیک کنیم، قالب از روی فایل single.php خوانده می شود. وقتی بخواهیم برای کتگوری های مختلف قالب های مختلف ایجاد کنیم، از دستورات شرطی در این فایل استفاده می کنیم.
    حالا این پست فرمت پیدا شده و کار را راحت کرده است اما یک سوال وجود دارد. آیا وقتی ما از حلقه ای که در گام دوم معرفی کردید، استفاده کنیم دیگر به سراغ single.php نخواهد رفت و به دنبال content.php می گردد؟
    نمی شود که کاری کرد که از این حلقه استفاده کنیم اما به صورت پیش فرض single.php فعال شود و در صورت تعیین نوع ساختار، قالب های دلخواه آنان بارگزاری شود؟

    • سعید شعبانی

      ۱. بله در حقیقت کد زیر باعث می شود تا به سراغ فایل content.php و زیر دسته های اون مثل content-aside.php, content-status.php و … برود.

      <?php get_template_part( 'content', get_post_format() ); ?>
      

      بله این هم ممکن هست به این شکل که شما در کد بالا به جای کلمه content از کلمه single استفاده کنید و زیر دسته هاش را هم مثل همون content نامگذاری کنید.

  17. سلام
    خسته نباشید یک نکته مبهم اینکه چرا این عبارت یا همون حلقه مطالب وردپرس در پوشه تم من نه تنها در فایل index.php بلکه در تمامی فایل ها که جستجو کردم وجود ندارد؟
    همچین چیزی امکان پذیر است؟

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

  19. محمدرضا

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

  20. حامد

    سلام
    قالب من تمام این ساختار و داره در قسمت گذاشتن ویدئو یه ادرس بار باز میشه که لینک آپ لود شده رو میخواد من در این قسمت لینک یه فایل فلش با دستوری که برای گذاشتن در هر جایی از سایت است میذارم فقط یکبار نشون میده و اگر دوباره تغییرات بدم و بروز رسانی کنم کل صفحه قالب و با ارور ۴۰۴ در قاب مورد نظر نشون میده اگه url تنها باشه همون آدرس مینویسه میشه تعریف فرمت ویدئو رو به فلش عوض کرد تا url فلش رو اجرا کنه
    ممنون میشم اگه راهنماییم کنید

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

  22. سلام خسته نباشید من ساختار رو برای قالبم قرار دادم ولی یک مشکلی هستش اینه که پست های که جزو ساختار هستن داخل هیچ حلقه ی نمایش داده نمیشوند مثلا تو حلقه ای جدید ترین پست ها و پستهای تصادفی وجود ندارند فقط در صورتی می شود دید که از بخش مدیریت “نمایش نوشته ” رو کلیک کنم لطفا عرض کنید مشکل کجاست! بیشتر کار من با دستورات شرطی فوق هم حل میشه ولی همینطور که گفتم ساختار تو قالب نمایش داده نمیشود.

    • سعید شعبانی

      توجه کنید شما باید مثل قبل عمل کنید فقط محتویات داخل حلقه را با کد زیر فراخوانی کنید.

      <?php get_template_part( 'content', get_post_format() ); ?>
      

      اگر به این شکل که در همین پست هم به صورت کامل توضیح داده شده عمل کرده باشید باید هر کوئری ای که می گیرد, محتوا به درستی فراخوانی بشه. اگر مشکلی هنوز با این مورد دارید لطفا در انجمن های روکش مطرح کنید تا با کمک هم مشکل را بر طرف کنیم.

  23. ناصر

    سلام
    رو سایتم میخواستم روی تامب نیل ها به صورت عکس یا نوشته بج یا برچسب بزارم، مثل جدید ، پرفروش ترین ، اورگانیک ، بدون افزودنی و و و . میخواستم ببینم باید از چه افزونه ای استفاده کنم یا اینکه تو خود وردپرس جایی هست که این کار رو انجام بدم؟ در ضمن سایتم ووکامرس نیست.

    نمونه تو عکس

    http://viny.ir/wp-content/uploads/2015/04/thumbs.jpg

  24. koolfayfer

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

    <?php get_template_part( 'content', get_post_format() ); ?>
    

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

کاربر گرامی برای ارسال دیدگاه اگر عضو روکش هستید باید سایت شوید در غیر اینصورت باید عضو شوید.