Wsparcie » Wtyczki » wp get post – kodowanie

  • Witam. Wgrałem wtyczkę get post(http://wordpress.org/extend/plugins/get-post/). Niestety w tytułach zamiast polskich znaków są krzaczki… Co dziwnego treść wyświetla normalnie.. proszę o pomoc.. z góry thx

    kod wtyczki

    <?php<br />
    if (!class_exists('JamesGetPost'))<br />
    {<br />
    	class JamesGetPost<br />
    	{<br />
    		function JamesGetPost()<br />
    		{<br />
    		}</p>
    <p>		function get_post($tag='')<br />
    		{<br />
    			global $wp_query, $post, $id;<br />
    			$temp_query = clone $wp_query;<br />
    			$temp_post = clone $post;<br />
    			$temp_id = $id;<br />
    			$tag=htmlentities($tag);<br />
    			$myq = new WP_Query("tag=$tag&showposts=1");<br />
    			if ( $myq->have_posts() ) while ( $myq->have_posts() )<br />
    			{<br />
    				$myq->the_post();<br />
    				$pc='';<br />
    				$pc='<div class="post" id="post-'.$post->ID.'">';<br />
    				$pc.='<h2><a href="'.get_permalink().'" rel="bookmark">'.htmlentities($post->post_title).'</a></h2>';<br />
    				$pc.=$post->post_date;<br />
    				$pc.='<div class="entry">';<br />
    				$pc.=$post->post_content;<br />
    				$pc.='</div>';<br />
    				$pc.='</div>';<br />
    			}<br />
    			$wp_query = clone $temp_query;<br />
    			$post = clone $temp_post;<br />
    			$id = $temp_id;<br />
    			return $pc;<br />
    		}</p>
    <p>		function read_params($params)<br />
    		{<br />
    			$re = '/tag="(?<tag>.+)"/';<br />
    			preg_match($re, $params, $matches);<br />
    			$tag = $matches['tag'];<br />
    			// Post content would be here<br />
    			return $this->get_post($tag);<br />
    		}<br />
    		function scan_content($content = '')<br />
    		{<br />
    			$re = '/(?<str>\[get\-post(?<params>.*)\])/';<br />
    			if (preg_match($re, $content, $matches))<br />
    			{<br />
    				$params = $matches['params'];<br />
    				$replace = $matches['str'];<br />
    				// Post content would be here<br />
    				$postcontent = $this->read_params($params);<br />
    				$content = str_replace($replace, $postcontent, $content);<br />
    			}<br />
    			return $content;<br />
    		}<br />
    	}</p>
    <p>}</p>
    <p>if (class_exists('JamesGetPost'))<br />
    {<br />
    	$getpostplugin = new JamesGetPost();<br />
    }</p>
    <p>if (isset($getpostplugin))<br />
    {<br />
    	add_filter('the_content', array($getpostplugin, 'scan_content'));<br />
    }</p>
    <p>?>

    kodowanie strony utf-8

Viewing 15 replies - 1 through 15 (of 28 total)
  • A kodowanie samych plików wtyczki? Też powinno być UTF-8.

    Thread Starter kidler

    (@kidler)

    czyli jak to ustawić?

    Nie wiem czy to w tym tkwi problem ale spróbuj:
    Ściągasz z serwera plik /wp-content/plugins/get-post/get-post.php , otwierasz go chociażby Notatnikiem, zapisujesz z kodowaniem UTF-8 (Plik > Zapisz jako > Kodowanie), wrzucasz na serwer nadpisując oryginał.

    Thread Starter kidler

    (@kidler)

    nie pomogło 🙁 a może jest inny sposób na wyświetlenie ostatniego wpisu na stronie…

    A czy wypełniając tę stronę tekstem z polskimi znakami (po prostu, w edytorze) wyświetlają się one na stronie, czy też tylko krzaki?
    Jeśli krzaki, to w przeglądarce wybierz Widok > Kodowanie/Zestaw znaków > Wybierz wszystkie z listy. Jeśli przy którymś ustawieniu pojawią się polskie znaki, wystarczy, że zmienisz kodowanie swojego theme’a (tak jak napisałem wyżej).

    Thread Starter kidler

    (@kidler)

    tak, na całej stronie polskie znaki działają poprawnie.. tylko w tym pluginie i tylko w tytule…

    Kończą mi się pomysły…
    Może skasuj tytuł tego felernego posta i wprowadź go ręcznie. Ew. Dodaj nowy z polskimi znakami w tytule, zobacz jak się zachowuje… W ostateczności możesz zmienić tytuł bezpośrednio w bazie danych (np. PhpMyAdminem)

    a może jest inny sposób na wyświetlenie ostatniego wpisu na stronie…

    Co najmniej kilka. Najszybciej to zainstaluj plugin Exec-PHP, aktywuj, a w treści strony na której ma pojawić się najnowszy post, wklej ten kod:

    <?php $recent = new WP_Query("showposts=1"); while($recent->have_posts()) : $recent->the_post();?>
    
    <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
    <?php the_content(); ?>
    
    <?php endwhile; ?>

    Thread Starter kidler

    (@kidler)

    Może skasuj tytuł tego felernego posta i wprowadź go ręcznie.
    ręczne wprowadzanie tytułów mija się z celem

    Najszybciej to zainstaluj plugin Exec-PHP, aktywuj, a w treści strony na której ma pojawić się najnowszy post, wklej ten kod:

    już o tym wcześniej pomyślałem… nawet znalazłem kod za to odpowiedzialny: http://codex.wordpress.org/Template_Tags/get_posts ale niestety tym razem zamiast tytułu postu wyświetlał tytuł aktualnej strony…

    twój kod działa świetnie dzięki

    Thread Starter kidler

    (@kidler)

    a jak wyświetlić liczbę komentarzy i kategorię wpisu…??

    Liczba komentarzy (chociaż do tego polecam wtyczkę Bocian):
    <?php comments_number('Brak komentazry', '1 komentarz', 'komentarzy: %'); ?>
    Kategorie:
    <?php the_category(', '); ?>
    Wszystkie tagi masz ładnie opisane w Codeksie.

    Thread Starter kidler

    (@kidler)

    a jak wyświetlić tylko 1 stronę?
    jakoś na http://codex.wordpress.org/Template_Tags/query_posts#Parameters nie mogę tego znaleźć

    coś mam ale:

    <?php
    query_posts('showposts=1');
    global $more;
    $more = 0;
    while (have_posts()) : the_post();
    endwhile;
    ?>
    
    <p align="center">Zapisany w <?php the_category(', ');  ?>  | <?php comments_number('Brak komentarzy', '1 komentarz', 'komentarzy: %'); ?>   | <a href="http://zamkowski.net/2009/">Czytaj więcej</a></p>

    tą linijkę „zapisany w..” wyświetla nad postem..why?

    the_category i comments_number muszą być w pętli (1, 2, 3), czyli, modyfikując twój kod:

    <?php
    query_posts('showposts=1');
    global $more;
    $more = 0;
    while (have_posts()) : the_post();
    ?>
    
    <p align="center">Zapisany w <?php the_category(', ');  ?>  | <?php comments_number('Brak komentarzy', '1 komentarz', 'komentarzy: %'); ?>   | <a href="http://zamkowski.net/2009/">Czytaj więcej</a></p>
    <?php endwhile; ?>

    Thread Starter kidler

    (@kidler)

    to samo.. też wyświetla „zapisany w…” nad wpisem….

    Może to:

    <?php $recent = new WP_Query("showposts=1"); while($recent->have_posts()) : $recent->the_post();?>
    
    <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
    <?php the_content(); ?>
    <p align="center">Zapisany w <?php the_category(', ');  ?>  | <?php comments_number('Brak komentarzy', '1 komentarz', 'komentarzy: %'); ?>   | <a href="http://zamkowski.net/2009/">Czytaj więcej</a></p>
    <?php endwhile; ?>

    Byłoby prościej gdybym znał resztę kodu i adres strony gdzie kod ten się wykonuje…

    Thread Starter kidler

    (@kidler)

    http://www.zamkowski.net

    ten ostatni kod co podałeś wyświetla cały wpis a nie tylko jego pierwszą stronę..

    kod jest umieszczony na stronie o tytule „witaj ufuludku” i ta strona jest ustawiona jo główna.. „impreza u sylwii” to już jest ten wyświetlający się post z tego kodu….

Viewing 15 replies - 1 through 15 (of 28 total)
  • Temat ‘wp get post – kodowanie’ jest zamknięty na nowe odpowiedzi.