Wsparcie » Używanie i konfiguracja WordPressa » Krzaczące się ogonki polskich znaków – problem inny niż wszystkie

  • Rozwiązano Szuta

    (@szuta)


    Witam serdecznie,

    Na pierwszy rzut oka może się wydawać, że mój problem jest standardowy i wystarczy przerobić w N++ pliki szablonu na utf8 bez bom… a jednak. Poslkie znaki działają na niemal całej stronie. Niemal. Jedynie na stronie głównej w postach będących cytatami wszystko się sypie.

    Przychodzisz do mnie z siekierą to znaczy, że też nie jestem Ci obojętny.
    Natalia Brożyńska

    Co ciekawe gdy przechodzimy do właściwego posta to wszystko wygląda prawidłowo.

    Oto mój plik content-quote.php który powinien odpowiadać za bałagan, ja nic nie widzę.

    <article <?php post_class(); ?> id="post-<?php the_ID(); ?>">
    	<div class="entry">
    		<?php if( ( 'full-width' != pinboard_get_option( 'layout' ) && ! is_category( pinboard_get_option( 'portfolio_cat' ) ) && ! ( is_category() && cat_is_ancestor_of( pinboard_get_option( 'portfolio_cat' ), get_queried_object() ) ) ) || pinboard_is_teaser() ) : ?>
    			<?php pinboard_post_thumbnail(); ?>
    		<?php endif; ?>
    		<div class="entry-container">
    		<?php if( 'full-width' == pinboard_get_option( 'layout' ) || is_category( pinboard_get_option( 'portfolio_cat' ) ) || ( is_category() && cat_is_ancestor_of( pinboard_get_option( 'portfolio_cat' ), get_queried_object() ) ) ) : ?>
    				<header class="entry-header">
    					<?php pinboard_entry_meta(); ?>
    				</header><!-- .entry-header -->
    			<?php endif; ?>
    			<?php if( ( 'full-width' == pinboard_get_option( 'layout' ) || is_category( pinboard_get_option( 'portfolio_cat' ) ) || ( is_category() && cat_is_ancestor_of( pinboard_get_option( 'portfolio_cat' ), get_queried_object() ) ) ) && ! pinboard_is_teaser() ) : ?>
    				<?php pinboard_post_thumbnail(); ?>
    			<?php endif; ?>
    			<?php if( ! is_category( pinboard_get_option( 'portfolio_cat' ) ) && ! cat_is_ancestor_of( pinboard_get_option( 'portfolio_cat' ), get_queried_object() ) ) : ?>
    				<div class="entry-summary">
    					<?php pinboard_first_blockquote(); ?>
    				</div><!-- .entry-summary -->
    			<?php endif; ?>
    			<div class="clear"></div>
    		</div><!-- .entry-container -->
    		<?php if( 'full-width' != pinboard_get_option( 'layout' ) && ! is_category( pinboard_get_option( 'portfolio_cat' ) ) && ! ( is_category() && cat_is_ancestor_of( pinboard_get_option( 'portfolio_cat' ), get_queried_object() ) ) ) : ?>
    			<?php pinboard_entry_meta(); ?>
    		<?php endif; ?>
    	</div><!-- .entry -->
    </article><!-- .post -->

    Uprzedzając pytania,
    mój style.css zaczyna się od @charset "utf-8";
    baza danych jest w utf8_general_ci z jej poziomu nie ma żadnych krzaków.
    Z resztą zapraszam do zobaczenia na własne oczy na http://szuta.pl
    Jacyś geniusze na forum :)? Bo ja wymiękam.

Viewing 4 replies - 1 through 4 (of 4 total)
  • Szczerze, to u mnie w ogóle cytatów ten motyw coś nie chce wyświetlać.

    Jedno, to w pliku functions.php odszukaj
    $web_fonts_stylesheet .= '&subset=latin';
    i zmień na
    $web_fonts_stylesheet .= '&subset=latin-ext';

    Co do głównego problemu, to zapewne zasługa użycia DOM w funkcji pinboard_first_blockquote.
    -tutaj jest fix na podobne problemy z kodowaniem. Czy działa – nie wiem, nie sprawdzałem.

    Ja całkowicie pozbyłem się tam DOMa zmieniając w pliku functions.php
    kawałek

    if ( ! function_exists( 'pinboard_first_blockquote' ) ) :
    function pinboard_first_blockquote() {
    	$document = new DOMDocument();
    	$content = apply_filters( 'the_content', get_the_content( '', true ) );
    	if( '' != $content ) {
    		libxml_use_internal_errors( true );
    		$document->loadHTML( $content );
    		libxml_clear_errors();
    		$blockquotes = $document->getElementsByTagName( 'blockquote' );
    		for( $i = 0; $i < $blockquotes->length; $i++ ) {
    			$blockquote = $blockquotes->item($i);
    			$document = new DOMDocument();
    			$document->appendChild( $document->importNode( $blockquote, true ) );
    			echo $document->saveHTML();
    		}
    	}
    	if( pinboard_is_teaser() && has_post_format( 'quote' ) ) {
    		echo '<p><a href="' . get_permalink() . '" rel="bookmark">&rarr; ' . get_the_time( get_option( 'date_format' ) ) . '</a></p>';
    	}
    }
    endif;

    na

    if ( ! function_exists( 'pinboard_first_blockquote' ) ) :
    function pinboard_first_blockquote() {
     $content = get_the_content();
     if( '' != $content ) {
      echo '<blockquote>'.$content.'</blockquote>';
     }
    if( pinboard_is_teaser() && has_post_format( 'quote' ) ) {
    		echo '<p><a href="' . get_permalink() . '" rel="bookmark">&rarr; ' . get_the_time( get_option( 'date_format' ) ) . '</a></p>';
    	}
    }
    endif;

    Thread Starter Szuta

    (@szuta)

    WOW Prawie wszystko działa! Jakbyś mi powiedział jeszcze jak pozbyć się podwójnego otwarcia cudzysłowa to by było bosko :D!

    Musiał byś podać swój kod funkcji pinboard_first_blockquote z pliku functions.php -bo tam możesz mieć jakiegoś babola
    ….chyba, że stosujesz blockquote w treści samego wpisu – wówczas wystarczy go usunąć i zaktualizować wpis.

    Thread Starter Szuta

    (@szuta)

    Już wszystko działa 🙂 Dziękuję Ci bardzo

Viewing 4 replies - 1 through 4 (of 4 total)
  • Temat ‘Krzaczące się ogonki polskich znaków – problem inny niż wszystkie’ jest zamknięty na nowe odpowiedzi.