چگونه از دست خطاهای رایج در قالب وردپرس رها شویم؟
اگر طراح قالب وردپرس هستید و یا به فکر طراحی و ایجاد قالب وردپرس رایگان یا پرمیوم هستید، احتمالاً با برخی از اشتباهات روبرو میشوید که بهتر است از آنها جلوگیری کنید. حتی اگر همیشه کدنویسی شما تمیز و مناسب است، مواردی وجود دارد که هنوز هم بهنوعی شما را به سمت خطای رایج قالب وردپرس سوق میدهد. امیدواریم بتوانید با کمک این مقاله که چگونه از دست خطاهای رایج در قالب وردپرس رها شویم؟ و قالب وردپرس بهتر و مناسبتری را به کاربران خود ارائه دهید.
۱ – دور خود نچرخید
هنگامیکه میخواهید بخشی از قالب را از نظر ظاهر بهبود بخشید باید دقت کافی را داشته باشید، بهخصوص زمانی که تابعی را ایجاد میکنید که دقیقاً همان کارکردهای تابع دیگری را انجام میدهد. هرچه کدهای ظاهری، بیشتر افزوده شود، نگهداری و حفظ آن سختتر میشود. در هنگام کدنویسی،؛ قبل از ایجاد یک تابع جدید بهتر است توابعی که در قالب استفاده کردهاید را بازبینی کنید تا از ایجاد توابع مشابه جلوگیری شده و خطای رایج قالب وردپرس رخ ندهد.
بهعنوانمثال، تابعی به نام (get_portfolio_part($name, $slug میتواند شما را از دردسر استفاده بیشازحد از
;(get_template_part(“portfolio/$name”, $slug نجات دهد. این باعث میشود که تعداد کدهای مشابه شما کمتر شود و در نهایت متوجه شویم که چگونه از دست خطاهای رایج در قالب وردپرس رها شویم؟
۲ – پیشبینی آینده را متوقف کنید
انسانها در پیشبینی آینده وحشتناک هستند. با این حال، توسعهدهندگان همیشه این کار را انجام میدهند. بهعنوانمثال، تصور کنید گزینهای برای نمایش آیکونهای شبکههای اجتماعی در جایی در پست خود ایجاد کردهاید. فرض کنید که این همان کاری است که شما تصمیم به انجام آن گرفتید؛ بنابراین تابع فرضی ما چیزی شبیه به این خواهد بود:
function has_social_icon($icon) { $icons = get_post_meta(get_the_ID(), 'post_social_icons', true); // do what has to be done with $icons return true; }
تابع بالا یک تابع مناسب است اما اگر با این سؤال روبرو شویم، چهکار کنیم: ” اگر بخواهم در آینده از این تابع در خارج از حلقه استفاده کنم چه اتفاقی میافتد؟” میتوانید پاسخ به این سؤال را در تابعی شبیه به این مشاهده کنید:
function has_social_icon($icon, $post_id = 0) { if( ! $post_id ) { $post_id = get_the_ID(); } $icons = get_post_meta($post_id, 'post_social_icons', true); // do what has to be done with $icons return true; }
این یک مثال ساده است که چگونه این اتفاقات رخ میدهد، اما هرچه کاری پیچیدهتر میشود، آیندهنگری آن سختتر میشود. سعی کنید کمتر کدها را پیشبینی کنید و بهتر است طبق روال عادی پیش بروید تا خطای رایج قالب وردپرس کمتر شود.
۳ – بهینهسازی بدموقع، ریشه همه مشکلات است
کد زیر را مشاهده کنید:
<?php $post_id = get_the_ID(); // look 'ma - I'm reusing ID, saving 1 function call! $thumb = get_the_post_thumbnail( $post_id, 'large'); // look 'ma - I'm saving another function call! Yay! ?> <div id="post-<?php echo $post_id ?> " <?php if( $thumb ): ?> <div class="thumbnail"> <?php echo $thumb ?> </div> <?php endif; ?> </div>
در این کد هر متغیر یک مقدار را دارد و به دلیل اینکه شما دو بار از اینها استفاده میکنید مقدار ۰۰۰۰۰۲ms زمان را ذخیره میکنید. البته در هنگام کش شدن این مقدار به ۰ms میرسد ولی شما باید سعی کنید این مقدار را کمتر کنید. در اینجا روشی بسیار سادهتر برای نوشتن همان کد وردپرس وجود دارد:
<div id="post-<?php the_ID() ?> " <?php if( has_post_thumbnail() ): ?> <div class="thumbnail"> <?php the_post_thumbnail('large') ?> </div> <?php endif; ?> </div>
این کد شامل دو تابع اضافی برای فراخوانی است، اما کارایی تابع ناچیز است. این بدان معنا نیست که شما بههیچوجه نباید کد خود را بهینه کنید. در مورد آن باهوش باشید. اگر میخواهید کوئری پایگاه داده و یا تابعهای سنگین را بهصورت حلقه اجرا کنید، باید کد خود را بهینه نگهدارید؛ اما آن را هوشمندانه انجام دهید.
۴ – نادیده گرفتن متغیرها در فایلهای قالب
اگر نمیخواهید بهینهسازی زیادی روی کدهای قالب خود انجام دهید باید به تعداد قابلتوجهی از متغیرها در فایلهای قالب خود توجه کنید. توصیه میکنیم که برای این ایده یک قدم بیشتر بردارید و سعی کنید از استفاده متغیرها در فایلهای قالب بهطورکلی اجتناب کنید. نه به این دلیل که شما باید از متغیرها خودداری کنید، بلکه به دلیل اینکه این کار منطقی به نظر میرسد.
استفاده از برخی شرطهای منطقی ضروری خواهد بود اما میتوانید با حذف هر چه بیشتر آنها، خوانایی فایلهای قالب خود را به میزان قابلتوجهی بهبود ببخشید و متوجه شوید که چگونه از دست خطاهای رایج در قالب وردپرس رها شویم؟
مثال ساده زیر را مشاهده کنید:
<?php $logo_url = false; $thumbnail_url = wp_get_attachment_image_src( get_theme_mod( 'hypthetical_theme_logo' ), 'full' ); if( $thumbnail_url ) { $logo_url = $thumbnail_url[0]; } ?> <?php if( $logo_url ): ?> <a href="<?php echo esc_url( home_url() ); ?>" title="<?php bloginfo( 'name' ); ?>" class="custom-logo"> <img src="<?php echo $logo_url; ?>" /> </a> <?php endif; ?>
این کد بهخودیخود ممکن است مشکلی نداشته باشد اما وقتی در فایل “header.php” قرار گرفته باشد، کاملاً یک مشکل به نظر میرسد. بهجای تعریف دو متغیر، میتوان آنها را در داخل توابع قرار داد. پس کد بالا بهراحتی میتواند به کدی مانند زیر تبدیل شود:
<?php if( hypotheme_has_logo() ): ?> <a href="<?php echo esc_url( home_url() ); ?>" title="<?php bloginfo( 'name' ); ?>" class="custom-logo"> <img src="<?php hypotheme_the_logo_url() ?>" /> </a> <?php endif; ?>
خواندن این کد بسیار سادهتر است و از هرگونه اضافهکاری غیرضروری جلوگیری شده است و درصورتیکه کسی دنبال تابع مربوط به لوگو باشد بهراحتی میتواند آن را پیدا کند.
درک این روش کدنویسی بسیار آسانتر است. در این روش بهراحتی و بهسرعت میتوانید تابع موردنظر خودتان را پیدا کرده، خطای رایج قالب وردپرس را پیدا کرده و آن را ویرایش کنید.
۵- مطمئن شوید که بهروز هستید
وردپرس دقیقاً مانند همه موارد موجود در اینترنت، در حال پیشرفت است. با بهترین روشها بهروز باشید و هر از چند گاهی خود را زیر سؤال ببرید و همچنین اطمینان حاصل کنید که هنوز از بهترین روشها استفاده میکنید.
بهعنوانمثال، با وجود اینکه wp_print_styles از زمان وردپرس نسخه ۳٫۳ بهندرت مورد استفاده قرار میگیرد اما هنوز هم برخی از توسعه دهندگان در قالبهای منتشرشده در WordPress.org از wp_print_styles بجای wp_enqueue_scriptts استفاده میکنند.
اگر تصمیم به طراحی قالب وردپرس گرفتهاید سعی کنید با بهترین روشها بهروز باشید و بارها و بارها کد را بررسی کنید تا ببینید که آیا راهی که شما در حال انجام کاری هستید بهترین راه برای انجام آن است یا خیر.
۶ – تا جایی که میتوانید از توابع محلی وردپرس استفاده کنید
تا جایی که امکان دارد از توابع محلی وردپرس استفاده کنید تا کسانی که از قالب شما استفاده میکنند بتوانند از طریق یک افزونه یا یک چایلد تم، قالب را سفارشیسازی کنند. وقتی با جدیدترین و بهترین روشهایی که وردپرس ارائه کرده است آشنا باشید میتوانید بهراحتی اشتباهات را پیدا کرده و آنها را حل کنید. بهعنوانمثال، وردپرس از نسخه ۴٫۵ به بعد از تابع لوگوی سفارشی محلی پشتیبانی میکند.
<?php if( has_custom_logo() ): ?> <a href="<?php echo esc_url( home_url() ); ?>" title="<?php bloginfo( 'name' ); ?>" class="custom-logo"> <img src="<?php the_custom_logo() ?>" /> </a> <?php endif; ?>
بهعنوان یک مثال دیگر، در هنگام طراحی یک فهرست زیبا، post-to-post (نوشته بعدی / قبلی) ممکن است از تابع get_next_post استفاده کنید و چیزی شبیه به کد زیر را در قالب خود قرار داده باشید:
<?php $next_post = get_next_post(); if (!get_next_post()): ?> <a href="<?php echo esc_url( get_permalink( $next_post->ID ) ); ?>"><?php echo esc_attr( $next_post->post_title ); ?></a> <?php endif; ?>
این کد کاملاً درست است و این دقیقاً همان چیزی است شما به آن نیاز داشتید اما این کد مشکلاتی را به وجود میاورد:
اولاً، بهصورت مستقیم به خصوصیات شی دسترسی پیدا نمیکنید. در این حالت، میتوانید بهجای آن از تابع ()get_the_title استفاده کنید. با استفاده از این تابع میتوانید عنوان را بهدرستی بازیابی کنید، “خصوصی / محافظتشده ” را اضافه کنید و فیلتر the_title را اعمال کنید.
// do this echo get_the_title( $next_post ) // instead of this: echo $next_post->post_title
ثانیاً، یک تابع وردپرس به نام ” next post link ” وجود دارد که با استفاده از آن میتوانید همه موارد فوق را فقط با یک فراخوانی تابع ساده جایگزین کنید:
<?php next_post_link() ?>
سعی کنید همیشه اطلاعات خود را بهروز نگهدارید و همیشه در حال تحقیق باشید تا از خطای رایج قالب وردپرس در امان بمانید.
۷ – فریمورک شخصی خود را ایجاد نکنید
همه توسعهدهندگان وقتی کد را مینویسند، میخواهند که DRY باشد (دوباره کاری ممنوع)، رابط کاربری تمیزی داشته باشد، قابل استفاده مجدد و کاملاً بهبودیافته باشد.
وقتی همه جاهطلبیها با چاشنی بهینهسازی بدموقع ترکیب شوند، تردیدی در پیشبینی آینده وجود نداشته باشد، توابع محلی وردپرس نادیده گرفته شوند و میل به صرفهجویی در کدنویسی به وجود بیاید، این درست زمانی است که ایده “فریمورکی برای من توسط من ” به وجود میآید.
اگر شما میخواهید یک فریمورک قوی ایجاد کنید و آن را در همهی قالبهای خود استفاده کنید، توصیه میکنیم از این تصمیم خود صرف نظر کنید زیرا در چند سال آینده از این کار پشیمان خواهید شد و دوباره به سراغ فریمورکهای توصیهشده وردپرس میروید. اگر استفاده از فریمورکهای شخصی مناسب بود اغلب قالبهای وردپرسی به این کار روی میآوردند ولی میبیند که بیشتر قالبها از فریمورکهای پیشنهادی وردپرس استفاده میکنند.
در زیر چند اشکال ایجاد فریمورک شخصی را ذکر کردهایم:
مشکلات نگهداری
اولین مشکل این است که ایجاد یک “فریمورک ” فقط اضافه کردن یک کد پایه اضافی وردپرس برای حفظ است. اگر این فریمورک در دایرکتوری / inc / me-frame شما قرار داشته باشد، هنگام انتشار یک بهروزرسانی برای آن، مجبور خواهید بود با استفاده از آن فریمورک، تمام قالبهای خودتان را بهروز کنید.
شاید شما به این فکر کرده باشید و با خود بگویید که “من این فریمورک را بهروزرسانی نمیکنم ” اما باید بدانید که هرچه بهعنوان یک توسعهدهنده رشد میکنید، فریمورک شما نیز رشد میکند و تغییر مییابد. سرانجام منجر به ناسازگاری با قالبهای قدیمی شما میشود. اگر در نسخههای قدیمی فریمورک قدیمی یک اشکال مهم را پیدا کنید، باید بخشهایی از تمام قالبهایی را که ساختهاید، دوباره بازنویسی کنید و یا یک افزونه مخصوص رفع اشکال را تهیه کنید؛ و دوباره: کد بیشتری برای نگهداشتن.
محدودیت پلاگین
ممکن است بخواهید بهجای سفارشیسازی فریمورک، یک افزونه وردپرس را ایجاد کنید. قالب باید طرحبندیهای زیبایی ایجاد کرده و از آنها سبک بگیرد. فایلهای قالب باید با پیکربندی کامل شود، از برچسبهای الگویی استفاده کنید که افزونهها یا هسته وردپرس ارائه میدهند. اگر نیاز به استفاده از کلاسهای PHP را احساس کردید، احتمالاً وارد قلمرو پلاگین میشوید.
بهجای اینکه یک فریمورک را ایجاد کنید، یک افزونه ایجاد کنید. میتوانید افزونه را بهراحتی با قالبهای خود تنظیم کنید. نهتنها از ایجاد یک فریمورک اجتناب خواهید کرد بلکه به جامعه متن باز کمک خواهید کرد.
افزایش پیچیدگی
وقتی فریمورکی را برای خود ایجاد میکنید، قالب خود را پیچیدهتر و کار با آن را دشوار میکنید. هنگامیکه کسی کد قالب شما را میخواند، باید فریمورک شما را بیاموزد که احتمالاً مستندات خاصی ندارد.
چگونه از دست خطاهای رایج در قالب وردپرس رها شویم؟
وردپرس استانداردهای کدنویسی خاص خود را دارد. درحالیکه میتوانید PHP را به طریقی که میخواهید در فایلهای قالب خود بنویسید، بهتر است در واقع به “راه وردپرس ” بپیوندید، حتی اگر لزوماً “بهترین راه ” نیست. به یاد داشته باشید که “بهترین ” مربوط به مخاطب است. پس لطفاً در هنگام طراحی و ایجاد یک قالب وردپرسی نکات گفتهشده در این مقاله را به یاد داشته باشید
نوشته چگونه از دست خطاهای رایج در قالب وردپرس رها شویم؟ اولین بار در بیست اسکریپت. پدیدار شد.