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

مسیح دیندار
مدیریت
عضو شده: 2021-04-12 14:23:35
2021-05-07 05:58:10

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

برای افزودن چنین جعبه ای دو کد باید به قالب اضافه کنید. یکی کد PHP و یکی هم برای استایل دهی اون جعبه.

اولین قدم قرار دادن این کد در فایل functions.php قالب هست:

function talkina_author_info_box( $content ) {
 
global $post;
 
// بررسی مطلب و داشتن نویسنده قابل نمایش
if ( is_single() && isset( $post->post_author ) ) {
 
// دریافت نام نمایشی نویسنده
$display_name = get_the_author_meta( 'display_name', $post->post_author );
 
// اگر نویسنده نام نمایشی تنظیم نکرده، از آی دی اون استفاده بشه
if ( empty( $display_name ) )
$display_name = get_the_author_meta( 'nickname', $post->post_author );
 
// دریافت فیلد درباره من نویسنده
$user_description = get_the_author_meta( 'user_description', $post->post_author );
 
// دریافت آدرس وب سایت نویسنده
$user_website = get_the_author_meta('url', $post->post_author);
 
// دریافت لینک صفحه همه مطالب نویسنده
$user_posts = get_author_posts_url( get_the_author_meta( 'ID' , $post->post_author));
  
if ( ! empty( $display_name ) )
 
$author_details = '<p class="author_name">درباره ' . $display_name . '</p>';
 
if ( ! empty( $user_description ) )
// دریافت و نمایش آواتار نویسنده
 
$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 .'">مشاهده همه مطالب ' . $display_name . '</a>';  
 
// دستور شرطی بررسی اینکه نویسنده یک آدرس وب سایت وارد کرده است
if ( ! empty( $user_website ) ) {
 
// نمایش لینک وب سایت نویسنده
$author_details .= ' | <a href="' . $user_website .'" target="_blank" rel="nofollow">وب سایت</a></p>';
 
} else { 
// اگر نویسنده مجاز به نمایش نیست، جعبه را مخفی کن
$author_details .= '</p>';
}
 
// نمایش جعبه نویسنده در ادامه مطلب
$content = $content . '<footer class="author_bio_section" >' . $author_details . '</footer>';
}
return $content;
}
add_action( 'the_content', 'talkina_author_info_box' );
 
// اجرای کدهای اچ تی ام ال در قسمت درباره من نویسنده
remove_filter('pre_user_description', 'wp_filter_kses');

سعی کردم توضیحات فارسی رو هم برای هر قسمت از کد بدم که اگه خواستید شخصی سازی انجام بدید راحت باشید!

و مرحله آخر اضافه کردن دستورات استایل هست. کد زیر رو در یکی از فایل های Style.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;
}