راهنمای مبتدیان برای کپی کردن کدهای php در وردپرس
گاهی که آموزشهای خود را در wpstart.ir به اشتراک میگذاریم، لازم است کاربران قطعات کدها را داخل فایل functions.php قالب خود پیست کنند. این امر برای کسانی که با php آشنایی دارند بسیار آسان است، اما برای کاربران جدید کمی گیجکننده است. اغلب مبتدیان میخواهند نتیجه نهایی آموزش را دریافت کنند، اما متاسفانه فاقد دانش php هستند و نمیدانند چگونه کدها را بدون خراب کردن سایت باید پیست کرد. هیچ مشکلی نیست، اگر شما درحال مطالعه این مقاله هستید برای اینکه سایت خود را به همین دلیل خراب کردهاید، به شما اطمینان میدهیم که شما تنها فرد نیستید. همه ما از یک نقطه شروع کردهایم، و همه این اشتباهات را کردهایم. در این مقاله، به شما نشان میدهیم که چگونه میتوان از اشتباهات رایج زمانی که کد php را از آموزش ما داخل تم فایل functions.php وردپرس خود پیست میکنید، اجتناب کرد.
نکته: فایل functions.php قالب درمسیر /wp-content/themes/yourthemename/ قرار دارد. این فایل با فایل اصلی functions.php که در پوشه /wp_includes/ قرار دارد فرق دارد.
برای درک نحوه درست وارد کردن کدها، باید درک درستی از مفاهیم پایه php داشته باشید.
//This is the opening tag of a PHP Code <?php //This is the closing tag of a PHP Code ?>
دلیلی که باید آگاهی داشته باشید این است که حدود 95 درصد از مشکلاتی که برای کاربرانمان برطرف میکنیم شامل وارد کردن کد در یک جای اشتباه است. بنابراین دانستن مفاهیم پایه php بسیار مفید است. در ادامه برخی از رایجترین اشتباهات را مشاهده میکنید:
مقاله مرتبط: روشی ساده برای افزودن کد سفارشی به وردپرس بدون از دسترس خارج شدن سایت
اولین اشتباه رایج
مانند کد زیر، کاربر کد را از یک سایت پیدا میکند که با کد php قاطی شدهاست، و آن را در جای اشتباه پیست کردهاست:
<?php add_filter( 'login_headerurl', 'custom_loginlogo_url' ); function custom_loginlogo_url($url) { return 'http://www.wpstart.ir'; } ?>
مثال برای کد فایل functions.php قالب (توجه داشته باشید که معمولاً فایل functions.php کدهای بسیاری دارد، اما روش یکیست):
<?php //Tons of mumble jumble PHP code that already exists in your PHP file is here //User would copy and paste the snippet they found on the web like this: <?php add_filter( 'login_headerurl', 'custom_loginlogo_url' ); function custom_loginlogo_url($url) { return 'http://www.wpbeginner.com'; } ?> ?>
اکنون بدیهی است که php با مشکل مواجه میشود چرا که شما یک تگ را باز کردهاید اما آن را نبستهاید. دو راه برای حل این مسئله وجود دارد. روش اول این است که قطعه کپیشده را در محل درست پیست کنیم:
<?php //Tons of mumble jumble PHP code that already exists in your PHP file is here //See how we properly closed the first open PHP tag ?> //Now we can open the PHP tag. <?php add_filter( 'login_headerurl', 'custom_loginlogo_url' ); function custom_loginlogo_url($url) { return 'http://www.wpbeginner.com'; } ?>
توجه کنید که چگونه کد php را درست بعد از بستن کد قبلی پیست میکنیم.
روش دیگر این است که بهسادگی تگهای باز و بسته را از توابع جدید وردپرس حذف کنید. مانند مثال زیر:
<?php //Tons of mumble jumble PHP code that already exists in your PHP file is here // New code just goes here (Notice how we stripped out the opening and closing PHP tags from the new code) add_filter( 'login_headerurl', 'custom_loginlogo_url' ); function custom_loginlogo_url($url) { return 'http://www.wpbeginner.com'; } ?>
دومین اشتباه رایج
هر نویسنده آموزشی دارای سبک خود میباشد. برخی مانند مثال بالا کدهای خود را داخل تگهای php نگه میدارند. برخی از نویسندگان کدهای خود را در تگها نمینویسند. این کار منجر به اشتباه دوم میشود. اگر کدی مثل کد زیر داشته باشید:
function custom_loginlogo() { echo '<style type="text/css"> h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login_logo.png) !important; } </style>'; } add_action('login_head', 'custom_loginlogo');
مقاله مرتبط: 8 تولید کننده کد ، ابزار و برنامه وب رایگان برای وردپرس
نویسنده فرض میکند که شما میدانید که قرار است این کد داخل تگهای php باشد. برخی حتی پیشنهاد میدهند که کدشان را در پایین تم فایل functions.php قرار دهید. مثالی از اشتباه یک تازهکار:
<?php //Tons of mumble jumble PHP code that already exists in your PHP file is here ?> //Then the user paste the code here (Notice the PHP tags are already closed above): function custom_loginlogo() { echo '<style type="text/css"> h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login_logo.png) !important; } </style>'; } add_action('login_head', 'custom_loginlogo');
متوجه شدید که کاربر کد را خارج از تگهای php پیست کردهاست. وردپرس نمیفهمد که کد چیست، بنابراین با مشکل مواجه میشود. یک کد درست بدین شکل میباشد:
<?php //Tons of mumble jumble PHP code that already exists in your PHP file is here //The new goes here function custom_loginlogo() { echo '<style type="text/css"> h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login_logo.png) !important; } </style>'; } add_action('login_head', 'custom_loginlogo'); //PHP End Tag ?>
سومین اشتباه رایج
اکنون مسائل مربوط به باز کردن و بستن تگهای php را بررسی کردیم، آخرین اشتباه رایج این است که کاربر قطعه کد جدیدی را داخل یک تابع موجود پیست کند. آناتومی یک تابع معمولاً به این شکل است:
function custom_function_name() { // This is the opening tag of a function // code specific to the function goes here } // This is the closing tag of a function
اگر یک تابع دیگر را داخل تابعی پیست کنید، موجب میشود که سایتتان با مشکل مواجه شود. مثال این اشتباه به شکل زیر میباشد:
function custom_function_name() { // This is the opening tag of a function // code specific to the function goes here function custom_loginlogo() { echo '<style type="text/css"> h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login_logo.png) !important; } </style>'; } add_action('login_head', 'custom_loginlogo'); } // This is the closing tag of a function
نمیتوانید این کار را انجام دهید. هر تابع مستقل است، بنابراین نمیتوانید دو تابع را باهم قرار دهید. راه درست برای پیست کردن به این شکل است:
function custom_function_name() { // This is the opening tag of a function // code specific to the function goes here } // This is the closing tag of a function function custom_loginlogo() { echo '<style type="text/css"> h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login_logo.png) !important; } </style>'; } add_action('login_head', 'custom_loginlogo');
سه اشتباه بالا احتمالاً دلایلی است که زمانی که یک قطعه کد را از وب داخل تم فایل functions.php وردپرس خود کپی پیست میکنید، قالب شما خراب میشود.
مقاله مرتبط: 15 قطعه کد برای سفارشی کردن Wp-config وردپرس
نکات دیگر
گاهی اوقات فقط به پیدا کردن خطا هنگام کپی پیست کردن کد میپردازیم. بعضی مواقع خطاها از بیتوجهی است، مثلاً نویسنده کاراکتر ; یا بستن نقل قول را فراموش کرده است. درحالی که بقیه، خطاهای تابعی در خود کد هستند یا کاربر به درستی دستورالعملها را دنبال نکرده است.
این بسیار مهم است که اگر پلاگینی در آموزش استفاده شده است آن را فعال کردهباشید. برخی از نویسندگان فقط تابع پلاگین را در کدهایشان فراخوانی میکنند بدون اینکه اعلام کنند که موجود بودن پلاگین را بررسی کنید. میتوانید هم نویسنده و هم کاربر را مقصر بدانید. نویسنده باید درجای خود این را اعلام کند، اما کاربر نیز میتواند این مقاله را به درستی مطالعه کند و پلاگین مورد نیاز را نصب کند.
زمانهایی وجود دارد که با قطعات کد بسیار طولانی که واقعاً به آن نیاز دارید، مواجه میشوید. نویسندگان تمایل به توضیح کد به کاربرانشان دارند (که این بسیار خوب است)، اما این امر همچنین سبب به وجود آمدن خطاهایی در کد میشود. بنابراین کاری که ما انجام میدهیم این است که به جای اینکه همه کد را یکجا پیست کنیم باید آن را بررسی کنیم تا قطعه کد نهایی را به دست آوریم.
آیا این اشتباهات را تجربه کردهاید؟ چگونه با آنها برخورد کردهاید؟ آیا با مسئلهای مواجه شدهاید که در بالا ذکر نکرده باشیم؟ اگر چنین است لطفاً آن را در نظرات با ما به اشتراک بگذارید.
مسئله مهمی بود که بهش اشاره کردید. این اشتباهات گاهی مشکل ساز میشه که باید با دقت از تکرارشون جلوگیری کرد.