فراخوانی تصویر شاخص خارج از Loop وردپرس
اگر کمی با برنامه نویسی قالب وردپرس آشنا باشید، قطعاً میدانید که برای نمایش محتویاتی مثل نوشته، برگه و یا حتی دستهبندیها که نیاز است مکرر یک قطعه داده از پایگاه داده دریافت شود و بعد از استایل بندی، درون صفحه به نمایش درآید، یک چرخه یا Loop اجرای میشود که این کار توسط کلمهٔ کلیدی while مختص زبان برنامه نویسی PHP انجام پذیر است. درون این چرخه اگر خواسته باشیم حتی میتوانیم تصویر شاخص یا هر نوع محتوایی که به صورت اختصاصی مربوط به یک نوشته یا برگه یا دیگر انواع محتوا است را فراخوانی کنیم. اما همین تصویر شاخص را اگر خواسته باشیم خارج از چرخه (Loop) نمایش دهیم باید چه کار کنیم؟ موضوعی که در این مقاله میخواهم راجع به آن صحبت کنم. پس اگر به بحث طراحی قالب وردپرس علاقهمندید، تا انتها همراه باشید.
اگر قصد دریافت URL تصویر شاخص یک نوشته را دارید که فقط شناسه یا ID آن نوشته را در اختیار دارید، باید از ساختار کد زیر استفاده کنید. این کد را در جایی بین فایلهای PHP قالب خود و یا فایل functions.php قالب میتوانید قرار دهید.
$post_id = 123; // use your post id
$thumb_id = get_post_thumbnail_id($post_id);
$thumb_url_array = wp_get_attachment_image_src($thumb_id, ‘full’, true);
$thumb_url = $thumb_url_array[0]; //this gets you the url of the image
حالا میرویم سراغ توضیحات فنی راجع به کارکرد هر خط کد که در بالا آمده است.
در خط اول ما شناسهٔ یک نوشته یا پست را درون یک متغیر با نام post_id میریزیم. این شناسه میتواند به صورت دستی داده شود که البته زیاد مرسوم نیست. اما در بیشتر موارد این متغیر میتواند از خروجی یک تابع تغذیه گردد.
در خط دوم ما از تابع get_post_thumbnail_id وردپرس استفاده کردیم که با دادن شناسهٔ پست، شناسهٔ تصویر شاخص آن پست را دریافت میکنیم و درون متغیر thumb_id میریزیم.
در خط بعدی وقت آن است که با تابع wp_get_attachment_image_src وردپرس، نشانی URL تصویر شاخص مورد نظر را دریافت کنیم. البته خروجی این تابع به صورت یک آرایه است که حتماً میبینید در خط آخر، اولین مقدار یا همان نمایهٔ ۰ آرایه را میگیریم و میریزیم درون متغیر thumb_url. حالا از متغیر thumb_url هر کجا که خواسته باشیم میتوانیم برای نمایش تصویر استفاده کنیم. عمدتاً متغیر thumb_url را درون مقدار src درون برچسب img قرار میدهیم. به صورت زیر:
<img src="<?php echo $thumb_url ?>" alt="" />
و در این صورت خیلی راحتی میتوانستیم از توابع درونی وردپرس برای نمایش تصویر شاخص یک نوشته، خارج از Loop وردپرس استفاده کنیم.
نکتهٔ آخر اینکه اگر قصد استفاده از کدهای بالا در پوستهٔ وردپرس خود را داشتید، حتماً به نام متغیرها دقت کنید که با متغیرهایی قبلی و بعدی شما تداخل نداشته باشند.