دوره مجازی قالب وردپرس (جلسه 24): wordpress loops

- visibility ٣۴ mode_comment

به نام خدا و سلام. با قسمت 24 ام از دوره مجازی قالب وردپرس در خدمت شما هستیم. در این جلسه قراره با هم دیگه حلقه های وردپرس یا همون wordpress loops رو با هم بررسی کنیم. تمام انعطاف پذیری و سفارشی سازی نمایش مطالب در وب سایت وردپرسی شما برمیگرده به تسلط بر این مبحث. در این جلسه مبحث رو به صورت تئوری کاملا باز کردیم و  در جلسه آینده به صورت عملی پیاده سازی می کنیم. حلقه های وردپرس به 3 روش پیاده سازی میشن که هر 3 روش رو کاملا توضیح میدیم.

در این جلسه خواهیم دید :

  • معرفی حلقه های وردپرس
  • معرفی حلقه اصلی وردپرس برای نمایش مطالب
  • معرفی حلقه WP_Query
  • معرفی حلقه get_posts
info توجه

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

ثبت نام در دوره طراحی قالب وردپرس

comment دیدگاه کاربران
حمید رضا مصطفی زاده

سلام استاد تو این قسمت خبرنامه در footer به نام “عضویت” که باید ایمیل رو وارد کنیم و به سایت http://feedburner.google.com/ وصل میشیم من آدرس ایمیل رو چه درست و چه غلط وارد میکنم با همچین error مواجه میشم
The feed does not have subscriptions by email enabled
باید حتما این غالب بره تو هاست تا این قسمت به خوبی اجرا بشه و یا نه اینکه ربطی نداره همینطوری هم باید جواب بده؟
سوال دومم اینه که کلا چنین روشی رو برای اینکه کاربر نیاد کد اسکریپت بزنه (برای جلوگیری از هک)
پیشنهاد میکنید و یا اینکه کاملا باید (مثلا توسط کپچا ها و یا validate کردن و ….) باید بیایم و کد ها رو sanitize کنیم؟
تشکر

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

majid zare

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

سلام موقعی که کاربر باید به صفحه لاگین منتقل بشه آدرس صفحه جاری (get_permalink) رو به صورت یک query string ست می کنی و به صفحه لاگین هدایت می کنی در صورت لاگین موفق، کاربر به اون آدرس که در query string ست شده هدایت می کنی.

سلام استاد چند تا سوال دارم لطفا پاسخ بدین با تشکر
اول اینکه درخواست های ajax من دوتا دوتا ارسال میشه یعنی وقتی لایک میکنم یا روی لینک دانلود کلیک میکنم دوتا اضافه میشه …مشکل از کجاس؟؟؟

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

سلام. برای سوال اول حتما چک کن فقط یکبار روی اون دکمه کلیک میشه. میتونی از console.log کمک بگیری.
برای سوال دوم بهتره وقتی input خالی ارسال میشه اون meta data رو حذف کنی. با استفاده از تابع delete_post_meta

فرهاد

سلام استاد. برای من یه مشکل عجیب پیش اومده. من فایل page.php رو در قالب خودم دارم. ولی با این وجود وردپرس میاد و براساس سلسله مراتب فایل های قالب به جای page.php فایل index.php رو لود می کنه. یعنی وقتی روی لینک یه برگه در قالبم کلیک می کنم همون صفحه ایندکس رو نشون میده. ولی slug مربوط به اون برگه در url دیده میشه. می تونید راهنمایی کنید مشکل از کجاست؟ جالبه در مورد پست ها اینطور نیست فقط در مورد برگه ها این مشکل وجود داره.

وحید صالحی

شاید صفحه page با index ازز نظر ساختار مشبهن و شما فکر می کنید صفحه index باز میشه با توجه به اینکه فرمودین slug مربوط به پیج هست.در صفحه پیج یک عبارت آزمایشی بونید مثل نام خودتون و دوبار صفحه page رو لود کنید اگر نامتون رو نمایش داده پس صفحه page داره لود میشه

فرهاد

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

mohfp

استاد علی محمدی آموزشتون عالی واقعا حرفی برای گفتن نمی زاره !

خوشحالیم راضی هستین دوست عزیز.

Mehdi Soli

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

سلام. مشکل نمایش اعداد فارسی مربوط به استاندارد های فونت های وب هستش و بعضا خودتون باید به صورت دستی اعداد رو فارسی کنید مثلا یک تابع بنویسید و اعداد فارسی رو در اون متن جابه جا کنید. از نسخه 1.8 به بعد جی کوئری اون مقدار false به صورت deprecate در اومده و باید از توابع complete برای callback ها استفاده بشه. برای مورد سوم باید از حالت شورت کد خارج بشیم و با استفاده از متاباکس ها این مورد رو پیاده سازی کنیم.در حالت متاباکس اطلاعات در لینک دانلود در یک آرایه ذخیره میشه و اونجا می تونیم مثلا تعداد دانلود رو هم داشته باشیم. اگه از شورت کد بخواین استفاده کنید کل باکس ها باید با یه دونه شورتکد هندل بشه که اینطوری دردسر خودش رو داره.

Mehdi Soli

سلام دوباره جناب آقای علی محمدی عزیز، بسیار ممون از پاسخ قبلی شما، یه چندتا سوال دیگه در مورد این جلسه برام پیش اومد که خواستم ازتون سوال کنم. سوال اول اینکه با توجه به چیزهایی که آموزش دادید، فهمیدم که اگر یک page خاصی با یه استایل و شکل خاص خواستم درست کنم (فرض کنیم اسمش test باشه) باید کد هام رو توی فایل test.php یا page-test.php و یا page-(آیدی صحفه تست).php و در روت اصلی دایرکتوری قالبم بذارم. درسته؟ سوال دوم اینکه: در صورتی که بخواهم برای طراحی بعضی از صفحه هام از page builder هایی مثل visual composer استفاده کنم، چطوری wordpress متوجه این page های ساخته شده من خواهد شد؟ آیا باید تنظیم خاصی برای اونها انجام بدم یا خیر؟ سوال بعدیم این هست که اگر به تعداد زیادی page ها در سایت نیاز داشته باشم که هر کدمشون شکل خاص خودشون رو داشته باشن، با روشی که در سوال اول پرسیدم، می باید در دایرکتوری قالبم، تعداد زیادی فایل برای page ها داشته باشم در حالی که وقتی با پلاگین های مربوط به page builder کار می کنم، در داخل دایرکتوری اصلی قالبم این فایل ها اصلا وجود نداشته و فقط یک فایل page.php وجود دارد. چه کار باید بکنم که من هم بتوانم مانند page builder ها فقط یه فایل page.php داشته باشم اما بتونم چندین صفحه مختلف با شکل ها و استایل های مختلف داشته باشم؟ (در واقع این پلاگین ها با داشتن منوی گرافیکی تو این کار به ما کمک می کنه که انواع مختلف صفحه رو داشته باشیم بدون اینکه از فایل های مختلف برای صفحات استفاده کنیم. در واقع از چه تکنیکی استفاده می کنند که ما هم بتونیم در طراحیمون از اون استفاده کنیم؟) ممنون میشم که راهنماییم بفرمایید. بسیار از لطف شما سپاسگزارم

سلام. کاملا درسته. در مورد page builder ها وقتی صفحه ای ایجاد می کنید خود اون پلاگین پیشنهاد میده که این page رو می تونید با page builder ایجاد کنید در نتیجه به جای محتوای page تنظیماتی که در page builder اعمال شده در صفحه لود میشه.این تنظیمات معمولا در متادیتای اون برگه ذخیره میشه.برای مورد سوم راهی به جز همون page builder وجود نداره که اگه سفارشی باشه باید خودتون page builder ایجاد کنید (البته نیاز به کدنویسی زیادی داره)

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.