دوره مجازی قالب وردپرس (جلسه 38):پیاده سازی صفحه page و شمارنده دانلود

دسته بندی: وردپرس
زمان مطالعه: 1 دقیقه
۱۹ آذر ۱۳۹۴

به نام خدا و سلام در جلسه 38 ام از دوره مجازی آموزش طراحی قالب حرفه ای وردپرس در خدمت شما هستیم. در این جلسه می خواهیم صفحه نمایش مطالب برگه های یا همان page  را ایجاد کنید. این صفحه قابلیت نمایش یا نمایش ندادن ساید بار را خواهد داشت و از لحاظ محتوایی تفاوت خاصی با صفحات single ندارد. در صورت تمایل می توانید style آن را تغییر دهید. هم چنین در این جلسه شمارنده دانلود از جلسه قبل را تکمیل خواهیم کرد.

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

  • پیاده سازی صفحه page.php
  • ایجاد باکس ها متا برای ذخیره حالت نمایش ساید بار در page
  • تکمیل شمارنده دانلود
:: توجه

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

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

چه امتیازی به این مقاله می دید؟
نویسنده
یادگیرنده ی همیشگی،برنامه نویس،نویسنده،عاشق خلق چیزهای عجیب،عاشق تحلیل داده ها، مسئول بخش فنی و هم بنیان گذار در سون لرن.

جلسات دوره

نظرات کاربران

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 ایجاد کنید (البته نیاز به کدنویسی زیادی داره)

Mehdi Soli

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

کیوان علی محمدی

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

mohfp

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

کیوان علی محمدی

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

فرهاد

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

وحید صالحی

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

فرهاد

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

رامین روزدار

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

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

کیوان علی محمدی

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

majid zare

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

کیوان علی محمدی

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

حمید رضا مصطفی زاده

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

کیوان علی محمدی

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

پایان زمان پشتیبانی

دانشجوی گرامی، بازه پشتیبانی فعال برای این دوره ۳ ماه است که برای شما به پایان رسیده است.

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

نیاز به لاگین

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