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

قبل از ساخت Testimonial در وردپرس اول باید post type را بسازیم. که در مورد ساخت آن پیشتر سخن گفته ام و شما میتوانید برای آگاهی بیشتر آن را مطالعه نمائید.پس سریعا فایل function.php قالب وردپرس خود را گشوده و کد زیر را در آن قرار دهید:

آموزش ساخت Testimonial در وردپرس

[php] {
add_action( ‘init’, ‘testimonials_post_type’ );
function testimonials_post_type() {
$labels = array(
‘name’ => ‘دیدگاه های مشتریان’,
‘singular_name’ => ‘Testimonial’,
‘add_new’ => ‘افزودن جدید’,
‘add_new_item’ => ‘افزودن دیدگاه جدید’,
‘edit_item’ => ‘ویرایش دیدگاه’,
‘new_item’ => ‘دیدگاه جدید’,
‘search_items’ => ‘جستجو دیدگاه’,
‘not_found’ => ‘دیدگاهی پیدا نشد’,
‘not_found_in_trash’ => ‘دیدگاهی در زباله دان پیدا نشد’,
‘parent_item_colon’ => ”,
);
register_post_type( ‘testimonials’, array(
‘labels’ => $labels,
‘public’ => true,
‘publicly_queryable’ => true,
‘show_ui’ => true,
‘exclude_from_search’ => true,
‘query_var’ => true,
‘rewrite’ => true,
‘capability_type’ => ‘post’,
‘has_archive’ => true,
‘hierarchical’ => false,
‘menu_position’ => 10,
‘supports’ => array( ‘editor’ ),
‘register_meta_box_cb’ => ‘testimonials_meta_boxes’, // فراخوانی تابع متاباکس
) );
}
[/php] حال پس از قرار دادن این کد در فایل فانکشن قالب وردپرس خود ان را ذخیره سازی نمائید و سپس وارد پیشخوان وب سایت وردپرسی خود شوید حال در این قسمت خواهید دید که در منوی سمت راست پیشخوان وردپرس شما یک گزینه جدید به نام دیدگاه مشتریان اضافه شده است که در ادامه باید متاباکس هایی را به این قسمت اضافه نمائیم

که برای اینکار باید از تابع add_meta_box() در قالب وردپرس خود استفاده کنیم که این کد به صورت زیر است و شما باید آن را به همین صورت در ادامه کد قبلی اضافه نمائید:
[php] {
function testimonials_meta_boxes() {
add_meta_box( ‘testimonials_form’, ‘جزئیات مشتری’, ‘testimonials_form’, ‘testimonials’, ‘normal’, ‘high’ );
}
function testimonials_form() {
$post_id = get_the_ID();
$testimonial_data = get_post_meta( $post_id, ‘_testimonial’, true );
$client_name = ( empty( $testimonial_data[‘client_name’] ) ) ? ” : $testimonial_data[‘client_name’];
$source = ( empty( $testimonial_data[‘source’] ) ) ? ” : $testimonial_data[‘source’];
$link = ( empty( $testimonial_data[‘link’] ) ) ? ” : $testimonial_data[‘link’];
$image = ( empty( $testimonial_data[‘image’] ) ) ? ” : $testimonial_data[‘image’];

wp_nonce_field( ‘testimonials’, ‘testimonials’ );
?>
<label>نام مشتری</label>
<input type=”text” value=”<?php echo $client_name; ?>” name=”testimonial[client_name]” size=”40″ />
<label>بیزینس / آدرس سایت</label>
<input type=”text” value=”<?php echo $source; ?>” name=”testimonial” size=”40″ />
<label>لینک</label>
<input type=”text” value=”<?php echo $link; ?>” name=”testimonial[link]” size=”40″ />
<label>تصویر</label>
<input type=”text” value=”<?php echo $image; ?>” name=”testimonial[image]” size=”40″ />
<?php
}
[/php] پس از قرار دادن کد فوق آن را ذخیره سازی کنید و سپس در بخش پیشخوان وب سایت وردپرس خود وارد قسمت افزودن دیدگاه مشتریان شوید و باید یک متاباکسی ایجاد شده باشد.حال پس از این که این مورد درست شد باید اطلاعات متاباکس ذخیره شود که برای اینکار میتوانید از کد زیر استفاده نمائید:
[php] {
add_action( ‘save_post’, ‘testimonials_save_post’ );
function testimonials_save_post( $post_id ) {
if ( defined( ‘DOING_AUTOSAVE’ ) && DOING_AUTOSAVE )
return;
if ( ! empty( $_POST[‘testimonials’] ) && ! wp_verify_nonce( $_POST[‘testimonials’], ‘testimonials’ ) )
return;
if ( ! empty( $_POST[‘post_type’] ) && ‘page’ == $_POST[‘post_type’] ) {
if ( ! current_user_can( ‘edit_page’, $post_id ) )
return;
} else {
if ( ! current_user_can( ‘edit_post’, $post_id ) )
return;
}
if ( ! wp_is_post_revision( $post_id ) && ‘testimonials’ == get_post_type( $post_id ) ) {
remove_action( ‘save_post’, ‘testimonials_save_post’ );

wp_update_post( array(
‘ID’ => $post_id,
‘post_title’ => ‘Testimonial – ‘ . $post_id
) );
add_action( ‘save_post’, ‘testimonials_save_post’ );
}
if ( ! empty( $_POST[‘testimonial’] ) ) {
$testimonial_data[‘client_name’] = ( empty( $_POST[‘testimonial’][‘client_name’] ) ) ? ” : sanitize_text_field( $_POST[‘testimonial’][‘client_name’] );
$testimonial_data[‘source’] = ( empty( $_POST[‘testimonial’][‘source’] ) ) ? ” : sanitize_text_field( $_POST[‘testimonial’][‘source’] );
$testimonial_data[‘link’] = ( empty( $_POST[‘testimonial’][‘link’] ) ) ? ” : esc_url( $_POST[‘testimonial’][‘link’] );
$testimonial_data[‘image’] = ( empty( $_POST[‘testimonial’][‘image’] ) ) ? ” : esc_url( $_POST[‘testimonial’][‘image’] );
update_post_meta( $post_id, ‘_testimonial’, $testimonial_data );
} else {
delete_post_meta( $post_id, ‘_testimonial’ );

}
[/php] حال پس از قرار دادن این کد در وب سایت وردپرسی شما اطلاعات مشتریان وب سایت شما از بین نرفته و ذخیره میشود.
دوستان عزیز حال باید لیست دیدگاه های مشتریان را بتوانیم نمایش دهیم.برای اینکار باید از کد زیر استفاده کنید و آن را در ادامه کد قبلی قرار دهید:
[php] {
add_filter( ‘manage_edit-testimonials_columns’, ‘testimonials_edit_columns’ );
function testimonials_edit_columns( $columns ) {
$columns = array(
‘cb’ => ‘<input type=”checkbox” />’,
‘title’ => ‘عنوان’,
‘testimonial’ => ‘دیدگاه مشتری’,
‘testimonial-client-name’ => ‘نام مشتری’,
‘testimonial-source’ => ‘بیزینس / سایت’,
‘testimonial-link’ => ‘لینک’,
‘author’ => ‘نویسنده’,
‘date’ => ‘تاریخ’
);
>return $columns;
}
add_action( ‘manage_posts_custom_column’, ‘testimonials_columns’, 10, 2 );
function testimonials_columns( $column, $post_id ) {
$testimonial_data = get_post_meta( $post_id, ‘_testimonial’, true );
switch ( $column ) {
case ‘testimonial’:
the_excerpt();
break;
case ‘testimonial-client-name’:
if ( ! empty( $testimonial_data[‘client_name’] ) )
echo $testimonial_data[‘client_name’];
break;
case ‘testimonial-source’:
if ( ! empty( $testimonial_data[‘source’] ) )
echo $testimonial_data[‘source’];
break;
case ‘testimonial-link’:
if ( ! empty( $testimonial_data[‘link’] ) )
echo $testimonial_data[‘link’];
break;
case ‘testimonial-image’:
if ( ! empty( $testimonial_data[‘image’] ) )
echo $testimonial_data[‘image’];
break;
}
}
[/php] قسمت بعدی نمایش Testimonials است.برای اینکه بتوانید دیدگاه های وب سایت را در هر کجای آن نمایش دهید باید از کد زیر استفاده کنید.
[php] {
function get_testimonial( $posts_per_page = 1, $orderby = ‘none’, $testimonial_id = null ) {
$args = array(
‘posts_per_page’ => (int) $posts_per_page,
‘post_type’ => ‘testimonials’,
‘orderby’ => $orderby,
‘no_found_rows’ => true,
);
if ( $testimonial_id )
$args[‘post__in’] = array( $testimonial_id );
$query = new WP_Query( $args );
$testimonials = ”;
if ( $query->have_posts() ) {
while ( $query->have_posts() ) : $query->the_post();
$post_id = get_the_ID();
$testimonial_data = get_post_meta( $post_id, ‘_testimonial’, true );
$client_name = ( empty( $testimonial_data[‘client_name’] ) ) ? ” : $testimonial_data[‘client_name’];
$source = ( empty( $testimonial_data[‘source’] ) ) ? ” : ‘ – ‘ . $testimonial_data[‘source’];
$link = ( empty( $testimonial_data[‘link’] ) ) ? ” : $testimonial_data[‘link’];
$image = ( empty( $testimonial_data[‘image’] ) ) ? ” : $testimonial_data[‘image’];
$cite = ( $link ) ? ‘<a href=”‘ . esc_url( $link ) . ‘” target=”_blank”>’ . $client_name . $source . ‘</a>’ : $client_name . $source;
$testimonials .= ‘
<aside class=”testimonial”>’;
$testimonials .= ‘
<div class=”entry-content”>’;
$testimonials .= ‘
‘ . get_the_content() . ‘<span></span>
‘;
$testimonials .= ‘
<cite>’ . $cite . ‘</cite><img src=’.$image.’ width=”50″ height=”50″/>’;
$testimonials .= ‘</div>

$testimonials .= ‘</aside>
‘;

endwhile;
wp_reset_postdata();
}
return $testimonials;
}
[/php]

 

استایل دهی  ساخت Testimonial در وردپرس

 

حال باید یک استایل خاصی نیز به این قسمت بدهید که در آموزش های قبلی نیز گفته ام اهمیت بسیاری دارد و استایل مورد نظر من به صورت زیر است:
[php] {
p.testimonial-text {
background: #f5f5f5;
padding: 12px;
text-align: justify;
border-radius: 15px;
}
p.testimonial-text:after {
background: url(image/btmarrow.png) no-repeat;
width: 63px;
display: block;
position: absolute;
content: ” “;
color: #f5f5f5;
height: 40px;
}
.testimonial-client-name img {
display: inline-block;
border-radius: 50px;
margin-bottom: -20px;
margin-right: 10px;
}
[/php]

امیدواریم مطلب آموزش ساخت Testimonial در وردپرس مفید باشد.

مطالب مرتبط:

پکیج کامل راه‌اندازی فروشگاه و اپلیکیشن دیجی کالا و بامیلو + هاست رایگان

حذف درخواست اطلاعات FTP در وردپرس

چگونه توابع سفارشی را به وردپرس بیافزاییم؟

قالب تخفیف گروهی وردپرس تخفیفات

منبع: تیک تم– ارائه دهنده مقالات: قالب وردپرسسئو وردپرسویدیو آموزشی