امروز قسمت ششم و آخر ترفندهای فایل functions وردپرس رو براتون آماده کردیم . در آموزش های قبلی 26 ترفند برای شما گفته شد که سعی شد اکثرا کاربردی باشند . در اینجا ما 6 ترفند دیگر براتون آماده کردیم که در مجموع این 6 قسمت 32 ترفند از ترفندهای فایل functions وردپرس رو براتون گفته باشیم .

ترفندهای فایل functions وردپرس

27- استفاده از کلاس زوج و فرد در نوشته های وردپرس

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

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;
}

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

ترفندهای فایل functions وردپرس - قسمت آخر
ترفندهای فایل functions وردپرس – قسمت آخر

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

28 – افزودن انواع فایل اضافی آپلود شده در وردپرس

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

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 نیز به جمع فایل های خود اضافه کنید .

29 – حذف لینک های پیشفرض تصاویر آپلودی در وردپرس

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

function wpi_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', 'wpi_imagelink_setup', 10);

نتیجه در تصویر زیر مشخص است :

ترفندهای فایل functions وردپرس
ترفندهای فایل functions وردپرس

30 – افزودن جعبه اطلاعات نویسنده به نوشته 

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

function wpi_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', 'wpi_author_info_box' );
 
// Allow HTML in author bio section 
remove_filter('pre_user_description', 'wp_filter_kses');

پس از اینکار برای اینکه وضعیت بهتری برای باکس اطلاعات داشته باشید از کد زیر میتوانید استفاده کنید :

.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;
}

31 – غیر فعال کردن XML-RPC در وردپرس

XML-RPC امکانی است برای اتصال برنامه های جانبی به وردپرس . حال ممکن است در بعضی مواقع این نیز خود مشکل امنیتی داشته باشد . برای غیر فعال کردن آن میتوانید از کد زیر استفاده کنید .

add_filter('xmlrpc_enabled', '__return_false');

32 – لینک خودکار تصویر شاخص به نوشته ها

برای اینکار از کد زیر استفاده کنید :

function wpi_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', 'wpi_autolink_featured_images', 10, 3 );