فایل تابع functions.php  قالب وردپرس در واقع جایی است که می توانید تمامی امکانات منحصر به فرد مربوط به قالب وردپرس خود را، در آن اضافه کنید.شما می توانید از فایل function.php برای توسعه و کاربردی تر کردن قالب وردپرسی خود استفاده کنید.فایل functions.php قالب وردپرس همانند، یک پلاگین وردپرسی برای شما عمل می کند که امکانات و کاربردهای مختلفی را به سایت وردپرسی شما اضافه می کند و می توانید از این فایل برای فراخوانی توابع مختلف در وردپرس و همین طور توابع دلخواه خود، بهره ببرید.

در ادامه شما را با تعدادی از ترفند های جالبی که میتوان برای فایل توابع یا همان function.php  استفاده کرد، آشنا خواهم کرد. اما قبل از آن توضیح مختصری درباره این فایل تابع در قالب های رایگان و پولی وردپرس میدهیم، با ما همراه باشید…

فایل توابع functions.php قالب وردپرس

فایل تابع function که معمولا با اسم function.php شناخته میشود یکی از فایل‌های پوسته‌های وردپرس است که در هر نوع پوسته‌ای اعم از پوسته‌های رایگان و پولی یافت میشود.
هدف از وجود این فایل آن است که به توسعه دهندگان این قابلیت داده شود تا بتوانند ویژگی های مورد نظر خود را به قالب وردپرس خود اضافه کنند، این فایل مانند یک افزونه عمل میکند و میتوانید کد های مورد نظر خود را به آن اضافه کنید.

functions.php  فایلی حاوی یک سری کد است که در پوشه قالب های وردپرسی یافت می شود. اعمال آن شبیه پلاگین ها است و به صورت خودکار هم در کنترل پنل مدیریتی و هم سایت، اجرا می شود.

تابع function.php می تواند پوشه قالب شما را پیدا کند؛ بنابراین قادر است هم از توابع ساخته شده وردپرس و هم توابع PHP ، برای تغییر دستوراتی که در سرتاسر هسته وردپرس از قبل تعریف شده اند، استفاده کند.

پلاگین های وردپرسی یا فایل functions.php

حال شاید برایتان سوال پیش بیاید که چه تفاوتی میان افزونه‌های اختصاصی سایت وردپرس و فایل function.php وجود دارد و کدام یک از آنها بهتر است؟
درحالی که استفاده از فایل functions وردپرس ساده‌تر است اما باید بگوییم استفاده از پلاگین های مخصوص سایت وردپرسی بهتر است و علت آن نیز این است که این نوع افزونه به پوسته مورد استفاده وردپرس شما وابسته نیست و صرف نظر از پوسته‌ای که هم اکنون بصورت فعال روی سایت خود دارید کار میکند.

از سوی دیگر، فایل functions.php یک پوسته تنها برای همان پوسته کار میکند و اگر پوسته خود را تغییر دهید لازم است که کدهای قرار داده شده در این فایل را در فایل functions پوسته جدید جایگذاری کنید.

اگر شما پلاگینی داشته باشید که که تابعی مشابه با آنچه در فایل functions.php وجود دارد را، فراخوانی نمایید، نتایج غیر منتظره ای را خواهید گرفت، حتی ممکن است که این امر باعث از کار افتادن کل سایت شما گردد.

فایل توابع functions.php فایلی منحصر به فرد برای هرقالب وردپرسی

هر قالب فایل functions.php مخصوص به خود را دارد اما کد های داخل این فایل تنها در زمانی واقعا اجرا می شوند که قالب مربوط به آن فایل functions.php فعال باشد. در صورتی که قالب وردپرس شما از قبل فایل function.php را داشته باشد، شما می توانید کدهای خود به این فایل اضافه کنید اما در صورتی که این فایل از قبل در دایرکتوری قالب شما موجود نباشد، شما می باید یک فایل با نام functions.php در داخل دایرکتوری قالب خود ساخته، تا بتوانید کدهای خود در قالب را به اجرا دربیاورید.

همچنین اگر شما بر روی هاست خود چند پوسته نصب شده داشته باشید همه آن ها دارای functions.php هستند اما فقط functions.php قالب فعلی (فعال) سایت شما اجرا خواهد شد. اگر احیانا در پوشه قالب سایتتان فایل functions.php وجود نداشت، نگران نباشید! شما به راحتی قادر به ساخت آن هستید. فقط کافی است نرم افزار Notepad را باز کنید و پس از جایگذاری کدهای مد نظرتان درون آن، آن را با نام functions.php ذخیره کنید.

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

توجه: قبل از هرگونه تغییر در فایل Functions.php از این فایل پشتیبان تهیه کنید که در صورت بروز خطا بتوانید فایل اصلی را بازگردانی کنید.



30 ترفند فوق العاده جهت استفاده در فایل functions.php وردپرس

فایل توابع functions.php 

۱- حذف کردن شماره ورژن وردپرس

شما همیشه باید از آخرین نسخه وردپرس استفاده کنید، اما شاید دوست نداشته باشید در پایین سایتتون متنی با عبارت نگارش ۴.۴.۴ (مثلا!) داشته باشید، در هرحال اگر می خواهید که شماره ورژن وردپرس که در بعضی بخش ها مانند پایین صفحه پیشخوان نمایش داده می شود حذف شود فقط کافیست کد زیر را در فایل توابع functions.php  خود کپی کنید:

function wpb_remove_version() {
return '';
}
add_filter('the_generator', 'wpb_remove_version');
۲- تغییر لوگوی پیشخوان وردپرس – بخش مدیریت سفارشی

اگر می خواهید وردپرس خود را شخصی سازی کنید، یکی از اولین کارها تغییر لوگوی وردپرس در پیشخوان وردپرس می باشد.برای این منظور ابتدا باید لوگو سفارشی خود را به پوشه تصاویر پوسته با نام custom-logo.png با سایز 16*16 آپلود کنید.
سپس لازم است که کد زیر را به فایل function.php پوسته خود اضافه کنید:

function wpb_custom_logo() {
echo '
<style type="text/css">
#wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {
background-image: url(' . get_bloginfo('stylesheet_directory') . '/images/custom-logo.png) !important;
background-position: 0 0;
color:rgba(0, 0, 0, 0);
}
#wpadminbar #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {
background-position: 0 0;
}
</style>
';
}
//hook into the administrative header output
add_action('wp_before_admin_bar_render', 'wpb_custom_logo');

توجه: در خط ۵ دقت کنید که اسم فایل که custum-logo.png قرار دارد و پوشه داخل پوشه قالب شما که images قرار گرفته درست باشد. و دقیقا همین فایل و پوشه در قالب شما وجود داشته باشد.

3- تغییر فوتر پنل مدیریت وردپرس

فوتر موجود در پنل ادمین وردپرس یک پیام “Thank you for creating with WordPress” یا  “سپاسگزاریم از اینکه سایت خود را با وردپرس ساخته‌اید.” را نمایش میدهد. شما میتوانید آن را با استفاده از این کد به هر متن دلخواه دیگری تغییر دهید:

function remove_footer_admin () {
 
echo 'Fueled by <a href="http://www.wordpress.org" target="_blank">WordPress</a> | WordPress Tutorials: <a href="https://novinpedia.ir" target="_blank">novinpedia.ir</a></p>';
 
}
 
add_filter('admin_footer_text', 'remove_footer_admin');
4- افزودن ابزارک‌های سفارشی در پیشخوان وردپرس

احتمالا شما هنگامی که وارد پیشخوان وردپرس خود می شوید ابزارک هایی رو میبینید ، به عنوان مثال اخبار وردپرس یا نوشته های شما رو نمایش داده میشود . به عنوان یک توسعه دهنده شما میتوانید با استفاده از کد زیر ویجت خود را به داشبورد وردپرس اضافه کنید.شما میتوانید از طریق کد زیر ابزارک‌های موجود در پیشخوان وردپرس خود را تغییر دهید:

add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
 
function my_custom_dashboard_widgets() {
global $wp_meta_boxes;
 
wp_add_dashboard_widget('custom_help_widget', 'Theme Support', 'custom_dashboard_help');
}
 
function custom_dashboard_help() {
echo '<p>Welcome to Custom Blog Theme! Need help? Contact the developer <a href="mailto:[email protected]">here</a>. For WordPress Tutorials visit: <a href="https://novinpedia.ir" target="_blank">novinpedia</a></p>';
}
5- تغییر تصویر Gravatar پیش فرض در وردپرس

حتما شما هم متوجه این موضوع شده اید که به صورت پیش فرض یک تصویر که به شکل یک مرد (شخص اسرار آمیز) است به عنوان گراواتار در وردپرس استفاده می شود. شما به عنوان توسعه دهنده پوسته وردپرس می توانید خیلی ساده تصویری را که میخواهید جایگزین تصویر پیش فرض کنید آپلود کرده و سپس کد زیر را به فایل function خود اضافه کنید:

add_filter( 'avatar_defaults', 'novinpedia_new_gravatar' );
function novinpedia_new_gravatar ($avatar_defaults) {
$myavatar = 'http://example.com/wp-content/uploads/2017/01/novinpedia-default-gravatar.png';
$avatar_defaults[$myavatar] = "Default Gravatar";
return $avatar_defaults;
}

توجه: در خط سوم جایی که آدرس اینترنتی است باید آدرس عکس نمایه خودتان را وارد کنید .بعد از ذخیره در قسمت نمایه ها شما میتوانید نمایه جدید را مشاهده کنید:

فایل function.php

۶- نمایش پویا تاریخ کپی رایت در فوتر وردپرس:

شما می توانید به راحتی تاریخ کپی رایت با ویرایش قالب های مربوط به فوتر به پوسته خود اضافه کنید. اما با این روش نه تاریخ شروع به کار وبسایت به نمایش در می آید نه سال بعد تاریخ جدید جایگزین می شود.شما میتوانید با استفاده از این کد تاریخ کپی رایت را در سایت خود به صورت داینامیک تبدیل کنید:

function wpb_copyright() {
global $wpdb;
$copyright_dates = $wpdb->get_results("
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = 'publish'
");
$output = '';
if($copyright_dates) {
$copyright = "© " . $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= '-' . $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
}

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

<?php echo novinpedia_copyright(); ?>
۷- تغییر رنگ پس زمینه سایت به صورت تصادفی در وردپرس:

آیا میخواهید رنگ پس زمینه سایت وردپرسیتان بصورت تصادفی و با هر بار بازدید و بارگذاری مجدد تغییر کند؟ در قدم اول باید کد های زیر را به فایل functions قالب وردپرس خود اضافه کنید:

function novinpedia_bg() { 
$rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
$color ='#'.$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].
$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];
echo $color;
}

سپس لازم است که فایل header.php پوسته خود را ویرایش کنید. تکه کد زیر را داخل تگ <body> جایگذاری کنید:

<body <?php body_class(); ?> style="background-color:<?php novinpedia_bg();?>">>

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

فایل توابع functions.php 

8- به روزرسانی آدرس URL وردپرس

اگر مشکل ریدایرکت و رفرش صفحه ورود به وردپرس را دارید یا اینکه نمیتوانید به ناحیه مدیریت وردپرس دسترسی پیدا کنید لازم است که آدرس URL وردپرس خود را به روزرسانی کنید.
یک راه برای انجام این کار استفاده از فایل wp-config.php است. اما اگر این کار را از طریق فایل wp-config انجام دهید، قادر نخواهید بود آدرس صحیح را در صفحه تنظیمات تنظیم کنید. فیلدهای آدرس URL وردپرس و URL سایت، قفل شده و غیر قابل تغییر خواهند بود.برای حل این مسئله، لازم است کد زیر را در فایل functions خود جایگذاری کنید:

update_option( 'siteurl', 'http://example.com' );
update_option( 'home', 'http://example.com' );

فراموش نکنید بجای نام دامنه example.com نام دامنه خود را جایگذاری کنید.

حال زمانی که به سایت خود وارد شدید، میتوانید وارد صفحه تنظیمات شوید و آدرس‌های URL را در آنجا تنظیم کنید. پس از انجام این کار لازم است کدی که به فایل functions خود اضافه کردید را حذف کنید در غیر اینصورت هر بار که به سایت خود دسترسی پیدا کنید آدرس‌های URL به روزرسانی خواهند شد.

9- اضافه کردن اندازه جدید به تصاویر شاخص در وردپرس:

وردپرس بصورت خودکار زمانی که یک تصویر آپلود میشود سایز‌های مختلفی از آن را ایجاد میکند. شما همچنین میتوانید سایز تصویر اضافی به این سایزها اضافه کنید . برای اینکار می توانید کد های زیر را به فایل توابع خود اضافه کنید:

add_image_size( 'sidebar-thumb', 120, 120, true ); // Hard Crop Mode
add_image_size( 'homepage-thumb', 220, 180 ); // Soft Crop Mode
add_image_size( 'singlepost-thumb', 590, 9999 ); // Unlimited Height Mode

این کد سه سایز متفاوت جدید برای تصویر ایجاد میکند. خیلی ساده میتوانید کد را به دلخواه خود تغییر دهید. شما میتوانید این سایزهای متفاوتی که برای تصویر تعریف کرده‌اید را در هرکجا از پوسته که میخواهید، به وسیله کد زیر استفاده کنید:

<?php the_post_thumbnail( 'homepage-thumb' ); ?>
10- اضافه کردن فیلد جدید به شناسنامه کاربران:

در صورتی که دوست دارید فیلد های جدیدی در بخش شناسنامه کاربران سایتتان اضافه کنید می توانید از کد های زیر استفاده کنید:

function novinpedia_new_contactmethods( $contactmethods ) {// Add Twitter $contactmethods['twitter'] = 'Twitter'; //add Facebook $contactmethods['facebook'] = 'Facebook'; return $contactmethods; } add_filter('user_contactmethods','novinpedia_new_contactmethods',10,1);

اضافه کردن این کد ها در شناسنامه کاربرانتان دو فیلد جدید با نام Twitters و Facebook ایجاد می کند. داخل [ ] باید تگی برای فیلد انتخاب کنید و روبروی مساوی باید عنوانی که میخواهید کنار فیلد نمایش داده شود را وارد کنید.

فایل توابع functions.php 

 

و سپس هر جا که خواستید مثلا فیلد توئیتر را فراخوانی کنید میتوانید از کد زیر استفاده کنید :

<?php echo $curauth->twitter; ?>
11- افزودن ابزارک قسمت‌های اضافه یا نوار کناری به پوسته وردپرس

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

// Register Sidebars
function custom_sidebars() {
$args = array(
'id'=> 'custom_sidebar',
'name'=> __( 'Custom Widget Area', 'text_domain' ),
'description'=> __( 'A custom widget area', 'text_domain' ),
'before_title'=> '
<h3 class="widget-title">',
'after_title'=> '</h3>
 
',
'before_widget'=> '
<aside id="%1$s" class="widget %2$s">',
'after_widget'=> '</aside>
 
',
);
register_sidebar( $args );
}
add_action( 'widgets_init', 'custom_sidebars' );

اکنون اگر به صفحه نمایش»ابزارک‌ها بروید ناحیه ابزارک سفارشی خود را مشاهده خواهید کرد.

فایل functions قالب وردپرس11 (1).jpg

جهت نمایش این نوار کناری یا ناحیه ابزارک آماده در پوسته وردپرس خود کد زیر جایگذاری کنید:

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('custom_sidear') ) : ?><!–Default sidebar info goes here–> b<?php endif; ?>
12- مدیریت RSS Feed فوتر

آیا تا کنون وبلاگ هایی را مشاهده کرده اید که تبلیغات خود را در خوراک سایت خود در انتهای هر پست قرار میدهند؟ شما میتوانید این کار را به راحتی با استفاده از کد زیر در فایل function.php خود انجام دهید:

function novinpedia_postrss($content) {if(is_feed()){
$content = 'This post was written by hamid '.$content.'Check out novinpedia';
}
return $content;
}
add_filter('the_excerpt_rss', 'novinpedia_postrss');
add_filter('the_content', 'novinpedia_postrss');
13- افزودن تصاویر شاخص به RSS Feed

تصاویر شاخص یا انگشتی پست‌ها معمولا فقط در طراحی سایت شما نمایش داده میشوند. شما میتوانید این تصاویر را به صورت خیلی ساده با افزودن کد زیر به فایل Functions درون پوشه قالب خود ، درون فایل RSS نمایش دهید .

function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) .
'</p>' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');
14- پنهان کردن خطاهای ورود به وردپرس

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

function no_wordpress_errors(){
  return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );

نکته: بجای عبارت something is wrong! میتوانید عبارت مورد نظر خود را وارد کنید.

اکنون اگر کاربری اطلاعات اشتباه را هنگام ورود به سایت وارد کند به جای خطاهای پیش فرض پیام “Somthing is wrong” نمایش داده خواهد شد.

فایل function.php

15– غیر فعال کردن قابلیت ورود با ایمیل در وردپرس

وردپرس به کاربران این امکان را میدهد که هنگام ورود به سایت نام کاربری و یا ایمیل خود را وارد کنند. شما میتوانید به سادگی ورود از طریق وارد کردن ایمیل را با جایگذاری تکه کد زیر در فایل function.php خود غیرفعال کنید:

remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );
16- غیر فعالسازی قابلیت جستجو در وردپرس

اگر میخواهید قابلیت جستجو را در سایت وردپرس خود غیر فعال کنید میتوانید به راحتی با استفاده از کد زیر این کار را انجام دهید:

function fb_filter_query( $query, $error = true ) {
 
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
 
// to error
if ( $error == true )
$query->is_404 = true;
}
}
 
add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );
17– ارسال با تاخیر پست ها در فید RSS

بعضی اوقات پس از پایان نگارش یک مطلب و انتشار این مطلب برروی سایت ممکن است با خطای نگارشی و یا مشکلی دیگر در پست مواجه شوید که قصد دارید آنرا قبل از خواندن تعداد زیادی از کاربران رفع کنید. اما در صورتی که مطالب به صورت همزمان برروی فید RSS شما قرار بگیرند امکان دارد که تعداد زیادی از کاربران مطلب را خوانده و سپس شما متوجه خطا شوید و آنرا برطرف کنید.

و یا ممکن است اسکریپت های اسپمر با استفاده از RSS سایت شما اقدام به کپی و انتشار پست های شما در سایت خودشان بکنند و گوگل دچار اشتباه بشود و نویسنده اصلی را به عنوان اسپمر شناسایی کند و برای شما امتیاز منفی در نظر بگیرد که می تواند روی سئو سایت تاثیر منفی بگذارد.

اما با منتشر کردن با تاخیر مطالب در فید RSS می توانید این مشکلات را برطرف کنید. با استفاده از کد زیر ۱۰ دقیقه تاخیر برای ارسال و ایجاد خوراک برای مطالب خواهید داشت و میتوانید در طول این زمان مطلب خود را ویرایش کنید:

function publish_later_on_feed($where) {
 
    global $novinpedia;
 
    if ( is_feed() ) {
        // timestamp in WP-format
        $now = gmdate('Y-m-d H:i:s');
 
        // value for wait; + device
        $wait = '10'; // integer
 
        // http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
        $device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
 
        // add SQL-sytax to default $where
        $where .= " AND TIMESTAMPDIFF($device, $novinpedia->posts.post_date_gmt, '$now') > $wait ";
    }
    return $where;
}
 
add_filter('posts_where', 'publish_later_on_feed');

نکته : در کد های بالا و در مقابل بخش device می توانید مشخص کنید که مدت تاخیر بر اساس ساعت روز هفته ماه و یا سال باشد و در بخش wait می توانید مشخص کنید که بر اساس بخش device چند ساعت روز هفته ماه و یا سال تاخیر داشته باشد ارسال مطالب در فید RSS که طبق مقادیر قرار گرفته در کد بالا مطالب ۱۰ دقیقه دیرتر در RSS منتشر می شوند. که شما می توانید این مقادیر را تغییر دهید.

18- تغییر متن “ادامه مطلب” برای خلاصه مطالب

اگر میخواهید متن خواندن مطالب بیشتر یا Reed More که به چکیده مطالب خود اضافه میکنید را تغییر دهید میتوانید از کد زیر استفاده کنید:

function modify_read_more_link() {
    return '<a class="more-link" href="' . get_permalink() . '">Your Read More Link Text</a>';
}
add_filter( 'the_content_more_link', 'modify_read_more_link' );
19- تغییر طول خلاصه مطالب در وردپرس

طول چکیده مطالب در وردپرس محدود به 55 کلمه است. اگر میخواهید این طول را تغییر دهید، میتوانید از کد زیر در فایل توابع functions.php  بهره بگیرید:

functionnew_excerpt_length($length) {
return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');

<<این کد تعداد کلمات قابل نمایش در چکیده را به 100 کلمه تغییر میدهد>>

20- غیر فعالسازی خوراک RSS در وردپرس

تمام سایت‌ها به RSS Feeds یا خبرنامه احتیاج ندارند. اگر میخواهید این سرویس را روی سایت خود غیرفعال کنید، با افزودن کد زیر به فایل functions خود این کار را انجام دهید:

function fb_disable_feed() {
wp_die( __('No feed available,please visit our <a href="'. get_bloginfo('url') .'">homepage</a>!') );
}
 
add_action('do_feed', 'fb_disable_feed', 1);
add_action('do_feed_rdf', 'fb_disable_feed', 1);
add_action('do_feed_rss', 'fb_disable_feed', 1);
add_action('do_feed_rss2', 'fb_disable_feed', 1);
add_action('do_feed_atom', 'fb_disable_feed', 1);
21- افزودن یک کاربر ادمین به وردپرس

اگر رمز ورود، نام کاربری یا ایمیل ثبت شده خود را فراموش کردید، میتوانید یک کاربر مدیر بوسیله اتصال به سایت توسط اکانت FTP و افزودن کد زیر به فایل functions ایجاد کنید:

function novinpedia_admin_account(){
$user = 'Username';
$pass = 'Password';
$email = '[email protected]';
if ( !username_exists( $user )  && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
} }
add_action('init','novinpedia_admin_account');

نکات مهم :

  • فراموش نکنید فیلدهای password، username و email را براساس اطلاعات خود تغییر دهید.
  • زمانی که به سایت وردپرس خود وارد شدید، فراموش نکنید که تکه کد را مجددا از فایل functions خود حذف نمایید.
  • توجه داشته باشید که برای انجام این کار باید از کلاینت FTP و یا مدیریت فایل سرور خود در سی پنل استفاده کنید.
22- نمایش کل تعداد کاربران ثبت شده در وردپرس

آیا میخواهید تعداد افراد ثبت نام شده در سایت را نمایش دهید؟ به راحتی با استفاده از کد زیر میتوانید این کار را انجام دهید:

// Function to return user count
function novinpedia_user_count() { 
$usercount = count_users();
$result = $usercount['total_users']; 
return $result; 
} 
// Creating a shortcode to display user count
add_shortcode('user_count', 'novinpedia_user_count');

این کد یک کد کوتاه ایجاد میکند که به شما این امکان را میدهد تا تعداد کل کاربران ثبت شده روی سایت خود را نمایش دهید. پس از جایگذاری کد بالا در فایل توابع functions تنها کافیست کد کوتاه [user_count] را در هر پست یا صفحه‌ای که میخواهید این تعداد در آن نمایش داده شود جایگذاری کنید.

remove_action('welcome_panel', 'wp_welcome_panel');
24- حذف برخی از دسته بندی ها در خوراک RSS

آیا میخواهید گروه بندی‌های خاصی را از RSS Feed وردپرس خود خارج کنید؟ این کد را به فایل functions.php خود بیفزایید:

function exclude_category($query) {
    if ( $query->is_feed ) {
        $query->set('cat', '-5, -2, -3');
    }
return $query;  
}
add_filter('pre_get_posts', 'exclude_category');
25- افزودن کلاس‌های Odd و Even CSS به نوشته‌های وردپرس

گاهی ممکن است پوسته‌های وردپرس را درحال استفاده از کلاس‌های قدیمی یا even class برای کامنت‌ها ببینید. این کلاس‌ها به کاربران کمک میکنند تا متوجه شوند یک کامنت کجا به پایان رسیده و کامنت بعدی کجا شروع شده است.

شما میتوانید از یک تکنیک مشابه برای پست‌های وردپرس خود استفاده کنید. این تکنیک زیبایی خاصی دارد و به کاربران کمک میکند به سرعت صفحات را با محتوای زیاد اسکن کنند. خیلی ساده کد زیر را به فایل تابع functions.php خود اضافه کنید:

function oddeven_post_class ( $classes ) {
   global $current_class;
   $classes[] = $current_class;
   $current_class = ($current_class == 'odd') ? 'even' : 'odd';
   return $classes;
}
add_filter ( 'post_class' , 'oddeven_post_class' );
global $current_class;
$current_class = 'odd';

این کد به سادگی کلاس‌های odd یا even را به پست‌های وردپرس اضافه میکند. اکنون میتوانید به این کلاس‌ها cssهای سفارشی جهت استایل دهی متفاوت آن‌ها اضافه کنید. یک نمونه CSS میتواند مانند چیزی که در زیر آمده باشد:

.even {
background:#f0f8ff;  
} 
.odd {
 background:#f4f4fb;
}

در نتیجه پست ها در سایت شما اینگونه نمایش داده خواهند شد:

فایل تابع functions.php 

26- اضافه کردن انواع فایل‌های قابل آپلود به وردپرس

بطور پیش فرض، وردپرس به شما امکان آپلود تعداد محدودی از انواع فایل‌ها را میدهد. اما شما میتوانید قابلیت آپلود انواع فایل را به وردپرس اضافه کنید. برای انجام این کار تکه کد زیر را به  فایل تابع functions.php  خود اضافه کنید:

function my_myme_types($mime_types){
    $mime_types['svg'] = 'image/svg+xml'; //Adding svg extension
    $mime_types['psd'] = 'image/vnd.adobe.photoshop'; //Adding photoshop files
    return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);

این کد به شما امکان آپلود فایل‌هایی با پسوند PSD و SVG را به وردپرس میدهد. شما میتوانید از گوگل جهت یافتن Mime type انواع فایل‌هایی که میخواهید آنها را در کد بالا به کار ببرید استفاده کنید.

27- حذف لینک‌های پیش فرض تصاویر در وردپرس

به صورت پیشفرض وقتی که یک تصویر را در وردپرس آپلود میکنید، به صورت اتوماتیک به فایل تصویر خود لینک میشود، و اگر کاربران بر روی تصویر کلیک کنند، وارد یک صفحه جداگانه از پست خواهند شد.شما میتوانید این روند را از حالت اتوماتیک خارج کنید و این کار را خود به صورت دستی انجام دهید.

برای غیرفعال کردن لینک‌دهی خودکار تصاویر، کد زیر را به فایل توابع functions.php خود اضافه کنید:

function novinpedia_imagelink_setup() {
    $image_set = get_option( 'image_default_link_type' );
     
    if ($image_set !== 'none') {
        update_option('image_default_link_type', 'none');
    }
}
add_action('admin_init', 'novinpedia_imagelink_setup', 10);

اکنون زمانی که تصاویر جدید را در وردپرس آپلود کنید، بصورت خودکار لینک دهی نمیشوند. در نظر داشته باشید که در صورت تمایل همچنان میتوانید تصاویر را به صفحه پیوست لینک دهی کنید.

28- افزودن باکس اطلاعات نویسنده به پست‌های وردپرس

اگر سایت شما دارای چند نویسنده باشد و اگر میخواهید در پایان پست های سایت اطلاعات و بیوگرافی آنها را نمایش دهید، میتوانید از این روش استفاده کنید. برای شروع میتوانید کد زیر را به فایل توابع functions.php  وردپرس اضافه کنید:

function novinpedia_author_info_box( $content ) {
 
global $post;
 
// Detect if it is a single post with a post author
if ( is_single() && isset( $post->post_author ) ) {
 
// Get author's display name 
$display_name = get_the_author_meta( 'display_name', $post->post_author );
 
// If display name is not available then use nickname as display name
if ( empty( $display_name ) )
$display_name = get_the_author_meta( 'nickname', $post->post_author );
 
// Get author's biographical information or description
$user_description = get_the_author_meta( 'user_description', $post->post_author );
 
// Get author's website URL 
$user_website = get_the_author_meta('url', $post->post_author);
 
// Get link to the author archive page
$user_posts = get_author_posts_url( get_the_author_meta( 'ID' , $post->post_author));
  
if ( ! empty( $display_name ) )
 
$author_details = '<p class="author_name">About ' . $display_name . '</p>';
 
if ( ! empty( $user_description ) )
// Author avatar and bio
 
$author_details .= '<p class="author_details">' . get_avatar( get_the_author_meta('user_email') , 90 ) . nl2br( $user_description ). '</p>';
 
$author_details .= '<p class="author_links"><a href="'. $user_posts .'">View all posts by ' . $display_name . '</a>';  
 
// Check if author has a website in their profile
if ( ! empty( $user_website ) ) {
 
// Display author website link
$author_details .= ' | <a href="' . $user_website .'" target="_blank" rel="nofollow">Website</a></p>';
 
} else { 
// if there is no author website then just close the paragraph
$author_details .= '</p>';
}
 
// Pass all this info to post content  
$content = $content . '<footer class="author_bio_section" >' . $author_details . '</footer>';
}
return $content;
}
 
// Add our function to the post content filter 
add_action( 'the_content', 'novinpedia_author_info_box' );
 
// Allow HTML in author bio section 
remove_filter('pre_user_description', 'wp_filter_kses');

سپس نیاز خواهید داشت تا یکسری کلاس CSS سفارشی استفاده کنید تا ظاهر باکس را زیباتر جلوه دهید. میتوانید از مثال زیر برای CSS استفاده کنید:

.author_bio_section{
background: none repeat scroll 0 0 #F5F5F5;
padding: 15px;
border: 1px solid #ccc;
}
 
.author_name{
font-size:16px;
font-weight: bold;
}
 
.author_details img {
border: 1px solid #D8D8D8;
border-radius: 50%;
float: left;
margin: 0 10px 10px 0;
}

با افزودن این css باکس شما ظاهری مانند تصویر زیر خواهد داشت:

29- غیرفعال سازی XML-RPC در وردپرس

XML-RPC روشی است که به برنامه‌های فرعی اجازه برقراری ارتباط از راه دور را با سایت وردپرس شما میدهد. این سرویس ممکن است باعث ایجاد حفره‌های امنیتی شود و میتواند توسط هکرها مورد استفاده قرار گیرد.

خیلی ساده این کد را به فایل functions خود اضافه کنید تا این سرویس روی سایت شما غیرفعال شود:

add_filter('xmlrpc_enabled', '__return_false');
30-لینک دهی خودکار تصاویر شاخص به پست‌ها

اگر پوسته وردپرس شما تصاویر شاخص را بطور خودکار به مقالات کامل پیوست نمیکند، میتوانید روش زیر را امتحان کنید. کد زیر را به فایل functions پوسته خود اضافه کنید:

function novinpedia_autolink_featured_images( $html, $post_id, $post_image_id ) {
 
If (! is_singular()) { 
     
$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_the_title( $post_id ) ) . '">' . $html . '</a>';
return $html;
 
} else { 
 
return $html;
 
}
 
}
add_filter( 'post_thumbnail_html', 'novinpedia_autolink_featured_images', 10, 3 );

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

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

5/5 ( 3 نظر )
2 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *