امروز قسمت ششم و آخر ترفندهای فایل 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;
}
ما از کد سی اس اس بالا استفاده کرده ایم که نتیجه ای مشابه تصویر زیر داشته است .

همانطور که در تصویر مشخص است رنگ پس زمینه باکس مربوط به نوشته در نوشته اول و دوم متفاوت است .
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);
نتیجه در تصویر زیر مشخص است :

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