ترفندهای مفید برای فایل functions.php وردپرس
- مقالات آموزشی
- بروزرسانی شده در
یکی از فایلهای بسیار مهم در قالب وردپرس فایل functions.php میباشد. شما امکان این را دارید که توسط این فایل کارآمد بسیاری از کارهای موردنیاز سایت خود را انجام دهید. برخی از کاربرانی که تازه با وردپرس آشنا شدهاند اطلاعات چندانی در مورد این فایل و نحوه عملکرد آن ندارند. به همین دلیل ما در تیم میهن وردپرس تصمیم گرفتیم در قالب مقالات مختلف در مورد این فایل مهم اطلاعاتی را به شما ارائه دهیم.
توسط این فایل شما امکان این را دارید که سایت خود را بهصورت کاملاً منحصربهفرد درآورده و آن را سفارشی کنید. شما میتوانید امکانات دلخواه خود را از طریق این فایل به سایت خود اضافه کنید و سایتتان را بهینه کنید. بهاینترتیب میتوانید سایتی کارآمد و پربازدید داشته باشید.
در این مقاله قصد داریم ترفندهای مفید برای فایل توابع قالب وردپرس را به شما کاربران عزیز آموزش دهیم. توسط این ترفندها شما میتوانید قابلیتهایی پرکاربرد را به سایتتان بهراحتی اضافه کنید. این مقاله در دو بخش به شما ارائه خواهد شد. با ما همراه باشید.
آنچه در این مقاله میخوانید
فایل توابع در وردپرس چیست
همانطور که گفتیم این فایل از اهمیت بسیاری برخوردار است. تمامی قالبهای رایگان و حرفهای وردپرس دارای این فایل هستند. این فایل بهعنوان فایل تابع قالب شما در نظر گرفتهشده است. درواقع این فایل در سایت شما همانند یک افزونه عمل میکند. ساختار این فایل بهگونهای است که شما میتوانید قطعه کد سفارشی خود را درون آن قرار داده و قابلیت دلخواه خود را به سایتتان اضافه کنید.
هدف از ایجاد این فایل اجازه دادن به ارائهدهندگان قالب برای تعریف از ویژگیهای قالب و توابع میباشد. توابع مختلفی در این فایل وجود دارند که شما میتوانید از آنها استفاده کنید. همچنین شما میتوانید در بعضی از سایتها مانند میهن وردپرس با دستورالعملی که به شما میگوید چگونه کد را در فایل functions.php و یا یک افزونه وردپرس سایت خاص اضافه کنید؛ بسیاری از این قطعه کدها را پیدا کنید و از آنها در جهت بهبود سایت خود استفاده کنید.
در حالی که فایل functions.php بسیار مناسب و راحت است؛ اما استفاده از افزونه اختصاصی بهتر است. چراکه مستقل از قالب وردپرس است و در نظر نمیگیرد که شما از چه افزونهای استفاده میکنید. از سمت دیگر فایل تابع قالب فقط برای قالبها کار میکند و اگر قالب را تعویض کنید باید کد سفارشی را در قالب جدید کپی کنید.
اکنون چند ترفند مفید برای فایل توابع وردپرس به شما ارائه میکنیم:
حذف نسخه وردپرس
در نظر داشته باشید که شما باید همیشه از نسخه نهایی وردپرس استفاده کنید. بااینحال ممکن است بخواهید شماره نسخه وردپرس را حذف کنید. انجام این کار بسیار ساده است. برای حذف نسخه وردپرس شما باید قطعه کد زیر را به فایل تابع اضافه کنید:
function wpb_remove_version() {
return '';
}
add_filter('the_generator', 'wpb_remove_version');
افزودن لوگو سفارشی به پنل مدیریت وردپرس
اگر قصد داشته باشید به ناحیه مدیریت وردپرس خود برچسب سفید اضافه کنید؛ باید یک داشبورد لوگو سفارشی به گام اول پردازش اضافه کنید. برای انجام این کار ابتدا نیاز دارید لوگو سفارشی را در فولدر تصاویر قالب بهعنوان لوگوی سفارشی فعلی آپلود کنید. همچنین شما باید اطمینان حاصل کنید که سایز لوگوی سفارشی 16×16 پیکسل است. پس از آن امکان این را دارید که کد زیر را به فایل تابع اضافه کنید:
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.webp) !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');
تغییر فوتر در پنل مدیریت وردپرس
فوتر در مدیریت وردپرس پیامهایی نظیر “سپاسگزاریم از اینکه سایت خود را با وردپرس ساختهاید.” را نمایش میدهد. اما در برخی از اوقات شما تمایل دارید که این پیام را تغییر داده و متن دلخواه خود را جایگزین ان کنید. بنابراین برای اینکه این متن را تغییر دهید میتوانید کد زیر را به فایل افزوده و متن را تغییر دهید:
function remove_footer_admin () {
echo 'Fueled by <a href="http://www.wordpress.org" target="_blank">wordpress</a> | WordPress Tutorials: <a href="https://mihanwp.com" target="_blank">MihanWP</a></p>';
}
add_filter('admin_footer_text', 'remove_footer_admin');
افزودن ابزارک سفارشی به داشبورد در وردپرس
احتمالاً شما ابزارکی که قالبها و افزونههای متعددی به داشبورد وردپرس اضافه کند را دیدهاید. توسط این کد شما میتوانید قابلیت دلخواه خود را به قالب وردپرس اضافه نمایید. شما جهت توسعه قالب میتوانید کد زیر را به فایل فانکشن اضافه کنید;
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:yourusername@gmail.com">here</a>. For WordPress Tutorials visit: <a href="http://www.mihanwp.com" target="_blank">MihanWP</a></p>';
}
نمونه این کار را میتوانید در تصویر زیر مشاهده کنید.
تغییر آواتار پیشفرض در وردپرس
اگر شما یک آواتار پیشفرض در وبلاگ دارید، میتوانید آن را با آواتار سفارشی خود جایگزین کنید. برای انجام این کار نیازی به نصب افزونه نیست. جهت تغییر آواتار پیشفرض بهراحتی تصویری که میخواهید بهعنوان آواتار پیشفرض استفاده کنید را آپلود کرده و کد زیر را در فایل تابع قرار دهید:
add_filter( 'avatar_defaults', 'wpb_new_gravatar' );
function wpb_new_gravatar ($avatar_defaults) {
$myavatar = 'http://example.com/wp-content/uploads/2017/01/wpb-default-gravatar.webp';
$avatar_defaults[$myavatar] = "Default Gravatar";
return $avatar_defaults;
}
اکنون به صفحه تنظیمات>Discussion رفته و آواتار پیشفرض خود را انتخاب کنید.
تاریخ کپیرایت متغیر در فوتر وردپرس
شما این امکان را دارید که بهراحتی تاریخ کپیرایت را به ویرایش قالب فوتر اضافه کنید. با این کار در هنگام شروع سایت نمایش داده نمیشود و بهصورت خودکار در سال بعدی تغییر نمیکند. شما میتوانید از کد زیر برای افزودن تاریخ کپیرایت پویا به وردپرس استفاده کنید:
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;
}
پس از افزودن این تابع فایل Footer.php را بازکنید و کد زیر را درجاییکه میخواهید تاریخ نمایش داده شود اضافه کنید:
<?php echo wpb_copyright(); ?>
به نظر میرسد این تابع برای تاریخ اولین ارسال و آخرین ارسال است.
تغییر تصادفی رنگ پسزمینه در وردپرس
یکی دیگر از امکاناتی که شما میتوانید توسط کد با استفاده از فایل پوسته بهوجود بیاورید تغییر رنگ پسزمینه است. جهت تغییر تصادفی رنگ پسزمینه ابتدا نیاز دارید کد زیر را به فایل توابع قالب اضافه کنید:
function wpb_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 <?php body_class(); ?> style="background-color:<?php wpb_bg();?>">>
در پایان تغییرات را ذخیره کرده و نحوه عملکرد وبسایت را مشاهده نمایید.
تغییر آدرس وردپرس
اگر صفحه ورود وردپرس شما رفرش باشد یا اینکه قادر نباشید به صفحه مدیریت دسترسی یابید؛ بنابراین نیاز به آپدیت آدرس وردپرس دارید. یک راه برای انجام این کار استفاده از فایل Wp-config.php میباشد. اما اگر از این روش این کار را انجام دهید قادر به تنظیم آدرس صحیح روی صفحه تنظیمات نخواهید بود. فیلد آدرس سایت و آدرس وردپرس غیرقابلویرایش و قفل خواهد شد. برای حل این مشکل باید کد زیر را در فایل تابع قرار دهید:
update_option( 'siteurl', 'http://example.com' );
update_option( 'home', 'http://example.com' );
فراموش نکنید که نام دامنه خود را جایگزین Example.com کنید. پس از ورود میتوانید به تنظیمات رفته و آدرس را تنظیم کنید. پسازآن باید کد اضافهشده به تابع را حذف کنید. در غیر این صورت آپدیت آدرسها را هر زمان که سایت شما در دسترس بود نگه میدارد.
افزودن اندازه تصویر اضافی در وردپرس
وردپرس بهصورت خودکار چندین سایز تصویر هنگام آپلود تصویر ایجاد میکند. شما نیز میتوانید اندازه تصویر اضافی برای استفاده در قالب را ایجاد کنید. بهاینترتیب شما امکان این را دارید که تصویر دلخواه خود را با توجه بهاندازه موردنیاز خود در سایت خود آپلود نمایید.
خب برای انجام این کار باید کد زیر را به فایل تابع قالب اضافه کنید:
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' ); ?>
افزودن فهرست جدید به قالب وردپرس
در نظر داشته باشید که وردپرس به ارائهدهندگان قالب اجازه تعیین منو جهتیابی و سپس نمایش آن را میدهد. برای تعیین محل منو جدید در قالب باید کد زیر را به فایل توابع قالب اضافه کنید:
function wpb_custom_new_menu() {
register_nav_menu('my-custom-menu',__( 'My Custom Menu' ));
}
add_action( 'init', 'wpb_custom_new_menu' );
پس از آن به بخش نمایش>منوها رفته و منو سفارشی را بهعنوان گزینه محل قالب خواهید دید.
اکنون کد زیر را به قالب سایت خود، جاییکه میخواهید منو جهتیابی نمایش داده شود اضافه کنید:
<?php
wp_nav_menu( array(
'theme_location' => 'my-custom-menu',
'container_class' => 'custom-menu-class' ) );
?>
در این آموزش در ادامه سری قبل برخی دیگر از این کدها را در اختیارتان قرار دادهایم. تا بتوانید بهوسیله آنها سایتتان را هر جور که بخواهید سفارشیسازی کرده و امکانات دلخواه خود را بهراحتی و بدون نصب هیچ افزونهای در آن بهوجود آورید. شما امکان این را دارید که در عرض چند دقیقه با استفاده از این کدها قابلیت دلخواهتان را به سایتتان اضافه کنید.
افزودن فیلد مشخصات نویسنده
شما میتوانید بهراحتی توسط افزودن کد زیر به فایل تابع زمینه مشخصات نویسنده را در وردپرس اضافه کنید. این کد به شما کمک میکند که بتوانید اطلاعات بیشتری را در قسمت مشخصات نویسنده اضافه کنید:
function wpb_new_contactmethods( $contactmethods ) {
// Add Twitter
$contactmethods['twitter'] = 'Twitter';
//add Facebook
$contactmethods['facebook'] = 'Facebook';
return $contactmethods;
}
add_filter('user_contactmethods','wpb_new_contactmethods',10,1);
بهاینترتیب این کد به زمینه دریتر و فیسبوک برای پروفایل کاربر در وردپرس اضافه خواهد شد.
اکنون شما امکان این را دارید که زمینه را در قالب نویسنده مانند زیر نمایش دهید:
<?php echo $curauth->twitter; ?>
اضافه کردن ویجت آماده و یا نوار کناری در قالب وردپرس
یکی از پرکاربردترین مواردی که شما به آن نیاز پیدا میکنید اضافه کردن ویجت آماده و یا نوار کناری در قالب وردپرس میباشد. اغلب کسانیکه با وردپرس سروکار دارند از این قابلیت مفید اطلاع دارند. اما ما در اینجا جهت اطلاع بیشتر در اختیار شما قرار میدهیم.
شما باید جهت انجام این کار کد زیر را به فایل پوسته قالب خود اضافه نمایید:
// 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' );
اکنون با رفتن به صفحهی نمایش>ابزارکها میتوانید ناحیه ویجت جدید که آن را بهدلخواه خود سفارشی کردهاید را مشاهده کنید:
علاوه بر این شما میتوانید جهت نمایش نوار کناری یا ناحیه ویجت در قالب, کد زیر را اضافه کنید:
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('custom_sidebar') ) : ?>
<!–Default sidebar info goes here–>
<?php endif; ?>
دستکاری فوتر خروجی RSS
برخی وبلاگها وجود دارند که تبلیغات را به خروجی RSS در زیر هر پست اضافه میکنند. اگر شما نیز قصد دارید این کار را انجام دهید میتوانید این کار را با کپی کردن تابع زیر در فایل توابع انجام دهید:
function wpbeginner_postrss($content) {
if(is_feed()){
$content = 'This post was written by Syed Balkhi '.$content.'Check out WPBeginner';
}
return $content;
}
add_filter('the_excerpt_rss', 'wpbeginner_postrss');
add_filter('the_content', 'wpbeginner_postrss');
افزودن ویژگی تصویر به خروجی RSS
همانطور که میدانید ویژگی تصویر معمولاً با طراحی سایت نمایش داده میشود. شما قادر هستید بهراحتی عملکرد را به خروجی 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');
مخفی کردن خطاهای ورود در وردپرس
خطاهای ورود در وردپرس میتواند توسط هکرها در مورد حدس زدن اینکه کدام نام کاربری و رمز عبور اشتباه است استفاده شود. این موضوع میتواند امنیت سایت شما را به خطر بیندازد. بنابراین باید به آن حتماً توجه کنید. جهت رفع این موضوع میتوانید با مخفی کردن خطاهای ورود در وردپرس منطقه ورود خود را امن کنید.
function no_wordpress_errors(){
return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );
بهاینترتیب کاربر زمان وارد کردن نام کاربری یا رمز عبور اشتباه یک پیغام خطا دریافت میکند.
غیرفعال کردن ورود از طریق ایمیل در وردپرس
در نظر داشته باشید که وردپرس به کاربران اجازه ورود بانام کاربری یا آدرس ایمیل را میدهد. از آنجا که شما با ایمیل خود با افراد زیادی در ارتباط هستید؛ پس این موضوع میتواند برای امنیت سایت خطر ایجاد کند. اگر تمایل دارید که مانع از انجام این کار شوید، میتوانید از طریق ایمیل در وردپرس و افزودن کد زیر به فایل تابع، ورود را غیرفعال کنید:
remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );
غیرفعال کردن قابلیت جستجو در وردپرس
در وردپرس برخی اوقات بعضی از سایتها وجود دارند که بهصورت تکصفحهای عمل میکنند. شما میتوانید قابلیت جستجو را در اینگونه سایتها از میان بردارید. چراکه باوجوداین قابلیت در سایت کاربر به اشتباه فکر میکند مطالب بیشتری در سایت وجود دارد و ممکن است سردرگم شود. بنابراین اگر تمایل دارید قابلیت جستجو را در سایت خود غیرفعال کنید؛ میتوانید کد زیر را به فایل تابع اضافه کنید:
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;" ) );
تأخیر در خروجی RSS پستها
گاهی اوقات ممکن است با یک دستور زبان و یا اشتباه املایی مقاله خود را پایان دهید. این اشتباه به خروجی RSS مشترکین توزیع میشود. اگر روی وبلاگ وردپرس اشتراک ایمیل داشته باشید سپس مشترکین آن را نیز دریافت میکنید. جهت جلوگیری از این کار شما میتوانید کد زیر را به فایل تابع اضافه کنید:
function publish_later_on_feed($where) {
global $wpdb;
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, $wpdb->posts.post_date_gmt, '$now') > $wait ";
}
return $where;
}
add_filter('posts_where', 'publish_later_on_feed');
در این کد 10 دقیقه زمان تأخیر داریم. بهصورت رایگان به هر تعداد دقیقهای که میخواهید زمان تأخیر را تغییر دهید.
تغییر متن برای گزیدهای در وردپرس
شما امکان این را دارید که این متن را به متن دلخواه خود تغییر دهید. این نوشته میتواند بهصورتهای مختلف در سایت شما نمایش داده شود. بنابراین جهت تغییر متنی که بعد از گزیدهای میآید، کد زیر را به فایل تابع اضافه کنید:
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' );
غیرفعال کردن خروجی RSS در وردپرس
این قابلیت بهصورت پیشفرض در وردپرس وجود دارد؛ اما تمام وبسایتها به خروجی RSS نیاز ندارند. اگر بخواهید خروجی RSS را در سایت وردپرس غیرفعال کنید پس کد زیر را به فایل تابع اضافه کنید:
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);
تغییر طول خلاصه مطلب در وردپرس
طول کلمات وردپرس گزیدهای به 55 محدودشده است. شما میتوانید آن را تعداد دلخواه خود تغییر دهید. بنابراین اگر قصد دارید آن را تغییر دهید کد زیر را به فایل تابع اضافه کنید:
functionnew_excerpt_length($length) {
return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');
در نظر داشته باشید که عدد 100 را به هر عددی که میخواهید در گزیدهای نمایش دهید میتوانید تغییر دهید.
افزودن کاربر مدیر در وردپرس
برخی اوقات شما رمز عبور و ایمیل وردپرس را فراموش میکنید. یا اینکه ممکن است دسترسی شما به سایت با مشکل مواجه شود. شما میتوانید جهت حل این مشکل از قطعه کد زیر استفاده کنید. شما میتوانید کاربر مدیر را با افزودن کد زیر به فایل تابع توسط FTP client اضافه کنید.
function wpb_admin_account(){
$user = 'Username';
$pass = 'Password';
$email = 'email@domain.com';
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','wpb_admin_account');
فیلد نام کاربری، رمز عبور و ایمیل را تکمیل کنید. پس از وارد شدن به سایت وردپرس فراموش نکنید که کد را از فایل تابع حذف کنید.
حذف پنل خوش آمدگویی از داشبورد وردپرس
پنل خوشآمد یک جعبه است که به صفحه داشبورد بخش مدیریت وردپرس اضافهشده است و کد کوتاه مفید را برای مبتدیان برای انجام کارها در سایت وردپرس جدید فراهم میکند. شما توسط این بخش از سایت میتوانید بهراحتی به قسمتهای مختلف سایت دسترسی داشته باشید.
اما برخی اوقات بعضی از افراد تمایل دارند که این پنل را در سایت خود حذف و پنهان کنند. شما قادر هستید با افزودن قطعه کد زیر به فایل تابع این پنل را حذف کنید:
remove_action('welcome_panel', 'wp_welcome_panel');
نمایش تعداد کل کاربران ثبتنامشده در وردپرس
زمانی که شما تعداد کاربران بالایی در سایت خود داشته باشید میتوانید این تعداد را به کاربران مهمان نیز نشان دهید؛ تا آنها را نیز تشویق کنید که در سایت شما عضو شوند. بهاینترتیب میتوانید با یک روش آسان بازدید سایت خود را افزایش دهید. انجام دادن این کار بسیار راحت است.
برای نمایش تعداد کل کاربران ثبتنامشده در وردپرس کد زیر را به فایل تابع اضافه کنید:
// Function to return user count
function wpb_user_count() {
$usercount = count_users();
$result = $usercount['total_users'];
return $result;
}
// Creating a shortcode to display user count
add_shortcode('user_count', 'wpb_user_count');
با افزودن این کد یک کد کوتاه ایجاد میشود که به شما اجازه نمایش دادن تعداد کل کاربران ثبتنامشده را میدهد. اکنون باید این کد را به [user_count] هرکجای قالب سایت خود که میخواهید تعداد کاربران را در آنجا نمایش دهید اضافه کنید.
حذف دسته خاصی از خروجی RSS
برخی اوقات ممکن است شما به هر دلیلی قصد حذف دسته خاصی از خروجی RSS را داشته باشید. در نظر داشته باشید که این کار بدون نصب هیچ افزونهای امکانپذیر است.. برای حذف دسته خاصی از خروجی RSS کد زیر را به فایل تابع اضافه کنید:
function exclude_category($query) {
if ( $query->is_feed ) {
$query->set('cat', '-5, -2, -3');
}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');
فعال کردن اجرای کد کوتاه در متن ابزارک
شورت کدها یک قابلیت خوب و مفید در وردپرس هستند که استفاده از آنها باعث میشود شما نیاز به استفاده از کد نویسیهای طولانی نداشته باشید. در نظر داشته باشید که بهطور پیشفرض وردپرس کد کوتاه را در متن ابزارک اجرا نمیکند. برای حل این مشکل کد زیر را به فایل تابع اضافه کنید:
// Enable shortcodes in text widgets
add_filter('widget_text','do_shortcode');
اضافه کردن کلاس زوج و فرد CSS به پست وردپرس
ممکن است قالبهای وردپرس را با استفاده از یک کلاس قدیمی و یا حتی برای نظرات وردپرس ببینید. این به کاربران کمک میکند بتوانند جاییکه نظرات پایان مییابند و متن شروع میشود را تجسم کنند. شما میتوانید از روشهای مشابه تکنیکی برای پست وردپرس خود استفاده کنید. این کار به کاربران کمک میکند تا صفحات را با تعداد زیادی محتوا بهسرعت اسکن کنند. برای انجام این کار بهراحتی کد زیر را به فایل تابع خود اضافه کنید:
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';
این کد بهسادگی یک کلاس زوج و فرد را به پستهای وردپرس میافزاید. اکنون میتوانید CSS سفارشی را به سبکهای متفاوت اضافه کنید. کد زیر برای شروع میباشد:
.even {
background:#f0f8ff;
}
.odd {
background:#f4f4fb;
}
نتیجه نهایی مانند تصویر زیر میباشد:
اضافه کردن انواع فایلهای اضافی برای آپلود در وردپرس
بهطور پیشفرض وردپرس اجازهی آپلود تعداد محدودی از تصاویر را برای انواع فایلها میدهد. اما شما امکان این را دارید که این تعداد را در سایت خود تغییر دهید. بهاینترتیب در آینده در سایت خود با مشکل مواجه نخواهید شد. بهاینترتیب شما میتوانید آن را برای انواع فایلهای دیگر گسترش دهید. شما باید کد زیر را به فایل تابع اضافه کنید:
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);
این کد به شما اجازهی آپلود فایل SVG و PSD به وردپرس را میدهد. برای پیدا کردن نوع Mime برای انواع فایل که میخواهید در کد استفاده کنید نیاز به گوگل دارید.
حذف لینکهای تصویر پیشفرض در وردپرس
بهطور پیشفرض در وردپرس زمان آپلود تصویر بهصورت خودکار به فایل تصویر یا صفحه ضمیمه لینک میشود. با این کار اگر کاربران روی تصویر کلیک کنند به صفحه جدیدی به دور از پست خواهند رفت. اما اگر بخواهید مانع از این کار شوید میتوانید توسط کد زیر این کار را انجام دهید. بنابراین برای توقف وردپرس از لینک خودکار تصویر آپلودی باید کد زیر را به فایل تابع اضافه کنید:
function wpb_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', 'wpb_imagelink_setup', 10);
اکنون وقتی تصویر را از وردپرس آپلود میکنیم بهصورت خودکار لینک نمیشود و میتوانید اگر بخواهید به فایل یا ضمیمه آن را لینک کنید.
اضافه کردن جعبه اطلاعات نویسنده در پست وردپرس
برخی اوقات شما در سایت خود دارای چند نویسنده هستید. همگی این نویسندهها در سایت شما تولید محتوا انجام میدهدند. بنابراین اگر میخواهید بایوس نویسنده را در پایان پست به نمایش بگذارید روش زیر را انجام دهید. انجام این کار بهسادگی امکانپذیر است. شما باید کد زیر را به فایل تابع اضافه کنید:
function wpb_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', 'wpb_author_info_box' );
// Allow HTML in author bio section
remove_filter('pre_user_description', 'wp_filter_kses');
سپس برای بهتر شدن 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;
}
نتیجه این کار مانند تصویر زیر میشود:
غیرفعال کردن XML-RPC در وردپرس
XML-RPC یک روش است که اجازه میدهد برنامههای شخص ثالث با سایت وردپرس از راه دور ارتباط برقرار کنند؛ که باعث مسائل امنیتی میشود و میتواند توسط هکرها مورد سو استفاده قرار گیرد. بنابراین جهت بالا بردن ایمنی سایت حتماً به آن توجه داشته باشید. برای خاموش کردن XML-RPC در وردپرس کد زیر را به فایل تابع اضافه کنید:
add_filter('xmlrpc_enabled', '__return_false');
لینک عکسهای ویژه به پست بهطور خودکار
اکثر قالبهای وردپرس از این قابلیت پشتیبانی میکنند. این قابلیت بسیار مفید و کارآمد است و باعث میشود سایت شما ظاهر بهتری داشته باشد. اما اگر قالب وردپرس شما بهصورت خودکار ویژگی تصویر را به پست لینک نمیکند، میتوانید بهسادگی با افزودن کد زیر به فایل تابع این کار را انجام دهید:
function wpb_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', 'wpb_autolink_featured_images', 10, 3 );
نتیجهگیری
همگی ترفندهای گفتهشده در این مقاله در وردپرس بسیار مهم و مفید است. با بهکارگیری آنها میتوانید یک سایت پربازده داشته باشید و سایت خود را در نظر کاربرانتان حرفهای جلوه دهید. همچنین برخی از این کارها بهسادگی قابل انجام است که برخی از افراد مبتدی روش انجام آنها را نمیدانند.
فایل توابع پوسته یک فایل بسیار مهم است که شما میتوانید بسیاری از این کارها را با استفاده از آن در سایت خود انجام داده و سایت خود را بهبود دهید.
موفق و پیروز باشید. 🙂
سلام
من فایل فانکشن رو ادیت میکنم و تغییرات هم اعمال میشه ولی بعد چند وقت ، پاک میشه کدایی که اضافه کرده بودم. مشکل از کجاست ؟
سلام من داشتم فایل functions.php قالب وودمارت سایت رو ویرایش می کردم که سایت با مشکل مواجه شد و الان ارور زیر نشون داده میشه:
Parse error: syntax error, unexpected ‘hrNEOj7hJws7iNHKOZFfb’ (T_STRING) in /home/donyaye3/public_html/wp-content/themes/woodmart/functions.php on line 7
یک خطای مهم در این وب سایت رخ داده است.
چطور باید مشکل رو حل کنم. هاستینگ سایت پاسخگو نبود و خودم برنامه نویسی بلد نیستم. فکر میکنم خط ۷ این فایل ارور داره…
سلام
من حالت دیباگ رو فعال کردم
این ارور امد
مشکل از کجاست و چطور باید برطرفش کنم
Notice: تابع acf_get_value به طورنادرست فراخوانی شد. زمینههای سفارشی پیشرفته نسخه حرفه ای – We’ve detected one or more calls to retrieve ACF field values before ACF has been initialized. This is not supported and can result in malformed or missing data. Learn how to fix this. لطفاً برای اطلاعات بیشتر، اشکال زدایی در وردپرس را مشاهده کنید. (این پیام در نگارش 5.11.1 افزوده شده است.) in /home/karsito2……./domains/……../public_html/wp-includes/functions.php on line 5768
درود
Warningها و notice هادر وردپرس مشکل خاصی برای سایت شما ایجاد نمیکنند. در صورتی که سایت شما مشکل برنامه نویسی داشته باشد، ارور ۵۰۰ دریافت خواهید کرد. در نتیجه نگران این اخطارها نباشید.
سلام وقت بخیر
من میخوام به صفحه ورود تایید گوگل اضافه کنم، حالا نسخه 3 یا 2 خیلی فرق نداره، پیشنهاد شما چیه ؟ چه افزونه ای بهترین کار رو انجام میده، من نمیخام توی تمام صفحات کد google فراخوانی بشه، فقط میخام کدش توی صفحه ورود لود بشه و همونجا هم کاربر verfiy بشه، ممنونم از شما
سلام متاسفانه اکثر افزونهها کد رو در همه صفحات لود میکنند. باید این مورد رو بررسی کنید افزونه خاصی مد نظرم نیست. اما google recaptcha را نصب کنید.
سلام وقت بخیر
من میخوام یک دکمه جدید در پیشخوان وردپرس ایجاد کنم ولی نمیخوام از طریق افزونه اینکار رو انجام بدم
میخوام از طریق فانکشن انجام بدم چون افزونه منابع رو اشغال میکنه
ممنون میشم راهنمایی کنید
با سلام
تفاوتی نداره کدهای افزونه رو توی فانکشن اضافه کنید
با سلام و عرض ادب
تبریک سال نو به تیم مقتدر میهن وب
آموزش های شما عالی است .جالب است که محتوای عالی آموزشی را که در بعضی از سایت ها در این حد هم نیست می فروشند ولی شما چه محتای فیلم و یا متنی را رایگان ارائه می نمایید .
خداوند به کسب و کارتان برکت دهد
ارادتمند امیر عباس رحیمی
با سلام و احترام
سپاس فراوان از لطف و توجه شما کاربر گرامی
امیدواریم که همیشه از خدمات ما راضی باشید
پیروز باشید
ممنون، بسیار کاربردی بود. منتظر بخش دوم آموزش هستیم …