Про кракозябры

👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

Обновил WP,сменил шаблон (тема Quest),теперь в сайдбаре имеются кракозябры на кириллицу (тут http://swaego.ru/).На Денвере та же картина,в том же месте.
Думал кодировка не та,перекодировал все файлы темы как надо,в utf-8 без BOM,никакого результата.
Может кто знает чего за фигня?Ну и решение естественно.

Создай свой первый сайт на WordPress

SwaEgo
Оцените автора
Добавить комментарий

  1. ctapbiu

    не корректное обрезание
    используйте

    mb_substr($string, $start, $length, 'UTF-8');
    

    вместо substr

    $string, $start, $length аналогичные параметры из substr

    Ответить
    1. SwaEgo

      А можно поподробнее,где это,что это,я ж чайник :)

      Ответить
    2. SwaEgo

      Это в файле таба надо поменять что-то?
      Вот у меня корявый файл tabs.php

      <div class="clear"></div>
      <div id="newtabs" class="tabox ">
          <ul class="tabsnav">
              
      		<li class="rec"><a href=" #recent"> Новое </a></li>
      		<li class="pop"><a href="#comy"> Комменты </a></li>
          </ul>
                  
      		
      <div id="recent" class="tabsdiv">
      
      <?php 
      	$my_query = new WP_Query('showposts=5');
      	while ($my_query->have_posts()) : $my_query->the_post();$do_not_duplicate = $post->ID;
      ?>
      <div class="fblock">
      		<?php boxim() ?>
      
      <h3><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php echo substr($post->post_title,0,20); ?></a></h3>
      <p>  <?php the_content_rss('', TRUE, '', 10); ?> </p>
      
      </div>
      <?php endwhile; ?>
      
      </div>
      
       <div id="comy" class="tabsdiv">
      <?php
      $comments = get_comments('status=approve&number=5');
      
      if ($comments) {
          echo '<ul>';
      
          foreach ($comments as $comment) {
              echo '<li class="comlist"><a href="'. get_permalink($comment->comment_post_ID).'#comment-'.$comment->comment_ID .'" title="'.$comment->comment_author .' | '.get_the_title($comment->comment_post_ID).'">' . get_avatar( $comment->comment_author_email, 60);
              echo '<span class="recent_comment_name">' . $comment->comment_author . ': </span>';
      		$comment_string = $comment->comment_content;
      		$comment_excerpt = substr($comment_string,0,80);
      
      		echo $comment_excerpt;
      
      		if (strlen($comment_excerpt) > 79){
      			echo ' ...';
      		}
              echo '</a></li>';
          }
          echo '</ul>';
      }
      
      ?>
      </div>
      </div>
      Ответить
      1. zonzuJIro

        Посмотрите в functions.php

        Ответить
      2. ctapbiu

        поищите в показанном куске кода substr внимательней

        Ответить
  2. SwaEgo

    Ладно,кучу методов перепробовал,ничего не помогает,выключил табы и без них обойдусь…
    Так что тему можно считать закрытой.

    Ответить
    1. tiaurus

      Да просто поменяйте в приведенном коде substr на mb_substr

      Ответить
      1. ctapbiu

        кодировку желательно указывать
        были у меня случаи что без явного указания кодировки не хотело работать (скорее всего из-за какого-то символа сбивалась автопроверка кодировки)

        Ответить
      2. SwaEgo

        Всё равно не работает.

        Ответить
      3. SwaEgo

        Во,всё-таки сработало mb_substr!
        Спасибо всем ответившим!!!

        Ответить
        1. tiaurus

          Приведите, пожалуйста, пример рабочего кода, чтобы любой мог сравнить его с нерабочим (приведенным выше), и использовать в качестве образца при подобных проблемах.

          Ответить
          1. SwaEgo

            Да в принципе ничего не изменилось,сменил substr на mb_substr и укоротил кол-во слов в выводе (они не влазили).

            <div class="clear"></div>
            <div id="newtabs" class="tabox ">
                <ul class="tabsnav">
            		<li class="rec"><a href=" #recent"> Новое </a></li>
            		<li class="pop"><a href="#comy"> Комменты </a></li>
                </ul>
                        	
            <div id="recent" class="tabsdiv">
            
            <?php 
            	$my_query = new WP_Query('showposts=5');
            	while ($my_query->have_posts()) : $my_query->the_post();$do_not_duplicate = $post->ID;
            ?>
            <div class="fblock">
            		<?php boxim() ?>
            
            <h3><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php echo mb_substr($post->post_title,0,20); ?></a></h3>
            <p>  <?php the_content_rss('', TRUE, '', 7); ?> </p>
            
            </div>
            <?php endwhile; ?>
            
            </div>
            
             <div id="comy" class="tabsdiv">
            <?php
            $comments = get_comments('status=approve&number=5');
            
            if ($comments) {
                echo '<ul>';
            
                foreach ($comments as $comment) {
                    echo '<li class="comlist"><a href="'. get_permalink($comment->comment_post_ID).'#comment-'.$comment->comment_ID .'" title="'.$comment->comment_author .' | '.get_the_title($comment->comment_post_ID).'">' . get_avatar( $comment->comment_author_email, 60);
                    echo '<span class="recent_comment_name">' . $comment->comment_author . ': </span>';
            		$comment_string = $comment->comment_content;
            		$comment_excerpt = mb_substr($comment_string,0,80);
            
            		echo $comment_excerpt;
            
            		if (strlen($comment_excerpt) > 79){
            			echo ' ...';
            		}
                    echo '</a></li>';
                }
                echo '</ul>';
            }
            
            ?>
            </div>
            </div>
            Ответить