رحیمی

کاراکتر عجیب FFFD در ویجت آخرین کامنت ها

11 پست در این موضوع قرار دارد

سلام

من از تم iTheme2 استفاده می کنم که یک ویجت خاص برای آخرین دیدگاه ها داره.

نمونه عملی اون رو در آدرس gistech.ir میتونید ببینید. مشکل اینه که برای بعض از کامنت ها یه کاراکتر عجیب هم اضافه میشه که اون رو در انتهای کامنت می بینید. خیلی سعی کردم ببینم مشکل چیه. اما چیزی متوجه نشدم. ظاهرا این کاراکتر یونیکد هست که برای کاراکترهای ناشناخته به کار می ره. اما چرا اینجا ظاهر میشه نمیدونم. اصل کد ویجت رو هم گذاشتم ببینم شما چیزی متوجه می شید.

پیشاپیش ممنون



class Themify_Recent_Comments extends WP_Widget {

///////////////////////////////////////////
// Recent Comments
///////////////////////////////////////////
function Themify_Recent_Comments() {
/* Widget settings. */
$widget_ops = array( 'classname' => 'recent-comments', 'description' => 'فهرستی از آخرین دیدگاه های همه نوشته ها' );

/* Widget control settings. */
$control_ops = array( 'id_base' => 'themify-recent-comments' );

/* Create the widget. */
$this->WP_Widget( 'themify-recent-comments', 'wp98 - آخرین دیدگاه ها', $widget_ops, $control_ops );
}

///////////////////////////////////////////
// Widget
///////////////////////////////////////////
function widget( $args, $instance ) {
extract( $args );

/* User-selected settings. */
$title = apply_filters('widget_title', $instance['title'] );
$show_count = $instance['show_count'];
$show_avatar = isset( $instance['show_avatar'] ) ? $instance['show_avatar'] : false;
$avatar_size = $instance['avatar_size'];
$excerpt_length = $instance['excerpt_length'];

/* Before widget (defined by themes). */
echo $before_widget;

/* Title of widget (before and after defined by themes). */
if ( $title )
echo $before_title . $title . $after_title;

$comments = get_comments(array(
'number' => $show_count,
'status' => 'approve',
'type' => 'comment'
));

echo '<ul class="recent-comments-list">';

foreach($comments as $comment) :

$comm_title = get_the_title($comment->comment_post_ID);
$comm_link = get_comment_link($comment->comment_ID);
?>

<li>
<?php
if ( $show_avatar ) {
echo '<a href="' . $comm_link . '">' . get_avatar($comment,$size=$avatar_size) . '</a>';
}
?>
<a href="<?php echo($comm_link)?>"><strong class="comment-author"><?php echo($comment->comment_author)?></strong>:</a> <?php echo substr(get_comment_excerpt( $comment->comment_ID ), 0, $excerpt_length); ?>…
</li>

<?php
endforeach;

echo '</ul>';


/* After widget (defined by themes). */
echo $after_widget;
}

///////////////////////////////////////////
// Update
///////////////////////////////////////////
function update( $new_instance, $old_instance ) {
$instance = $old_instance;

/* Strip tags (if needed) and update the widget settings. */
$instance['title'] = strip_tags( $new_instance['title'] );
$instance['show_count'] = $new_instance['show_count'];
$instance['show_avatar'] = $new_instance['show_avatar'];
$instance['avatar_size'] = $new_instance['avatar_size'];
$instance['excerpt_length'] = $new_instance['excerpt_length'];

return $instance;
}

///////////////////////////////////////////
// Form
///////////////////////////////////////////
function form( $instance ) {

/* Set up some default widget settings. */
$defaults = array( 'title' => 'آخرین دیدگاه ها', 'show_count' => 3, 'show_avatar' => false, 'avatar_size' => 32, 'excerpt_length' => 60 );
$instance = wp_parse_args( (array) $instance, $defaults ); ?>

<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>">عنوان:</label><br />
<input id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" width="100%" />
</p>

<p>
<label for="<?php echo $this->get_field_id( 'show_count' ); ?>">نمایش:</label>
<select id="<?php echo $this->get_field_id( 'show_count' ); ?>" name="<?php echo $this->get_field_name( 'show_count' ); ?>">
<?php
for ( $i = 1; $i < 11; $i++ ) {
echo '<option' . ( $i == $instance['show_count'] ? ' selected="selected"' : '' ) . '>' . $i . '</option>';
}
?>
</select>
</p>

<p>
<input class="checkbox" type="checkbox" <?php checked( $instance['show_avatar'], 'on' ); ?> id="<?php echo $this->get_field_id( 'show_avatar' ); ?>" name="<?php echo $this->get_field_name( 'show_avatar' ); ?>" />
<label for="<?php echo $this->get_field_id( 'avatar' ); ?>">نمایش اواتار</label>
</p>

<p>
<label for="<?php echo $this->get_field_id( 'avatar_size' ); ?>">اندازه اواتار:</label>
<input id="<?php echo $this->get_field_id( 'avatar_size' ); ?>" name="<?php echo $this->get_field_name( 'avatar_size' ); ?>" value="<?php echo $instance['avatar_size']; ?>" size="4" /> px
</p>

<p>
<label for="<?php echo $this->get_field_id( 'excerpt_length' ); ?>">چکیده دیدگاه</label>
<input id="<?php echo $this->get_field_id( 'excerpt_length' ); ?>" name="<?php echo $this->get_field_name( 'excerpt_length' ); ?>" value="<?php echo $instance['excerpt_length']; ?>" size="4" /> حرف
</p>

<?php
}
}

به اشتراک گذاری این پست


لینک به پست

افزونه سئو دارید؟!

به اشتراک گذاری این پست


لینک به پست

افزونه سئو دارید؟!

بله . YOAST

به اشتراک گذاری این پست


لینک به پست

افزونه رو غیرفعال کنید ببینید بازهم اون کاراکترها اضافه میشن؟

به اشتراک گذاری این پست


لینک به پست

غیرفعال کردم اما تغییری نکرد.

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

به اشتراک گذاری این پست


لینک به پست

توی این یکماه چه تغییراتی داشتید؟

به اشتراک گذاری این پست


لینک به پست

توی این یکماه چه تغییراتی داشتید؟

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

به اشتراک گذاری این پست


لینک به پست

همچین کاراکتری منظور شماست؟

که قبل ... میاد؟

به اشتراک گذاری این پست


لینک به پست

substr رو توی کدهایی که بالاتر دادید رو با تابع mb_substr عوض کنید

به اشتراک گذاری این پست


لینک به پست

substr رو توی کدهایی که بالاتر دادید رو با تابع mb_substr عوض کنید

عوض شد و حل شد مرتضی جان.

فکر کنم اساسا تابع درست عمل نمی کرده. چون من تعداد کاراکتر کامنت ها رو روی 65 تنظیم کرده بودم که خیلی کمتر از اون نشون می داد (حتی وقتی که اون کاراکتر یونیکد انتهای متن کامنت نمی اومد.) الآن که تعداد کاراکترهای نمایش داده شده زیاد شد متوجه شدم از این لحاظ هم درست عمل نمی کرده.

به هرحال مشکل عمده با W3C و Validate اون بود که این کاراکتر یونیکد رو نامعتبر می دونست.

بازم ممنون

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری