668 145 480 info@jacekjagusiak.pl
Jak wyświetlić wpisy z innego bloga z miniaturkami?

Jak wyświetlić wpisy z innego bloga z miniaturkami?

Niekiedy mamy kilka tematycznych blogów na WordPressie, którymi na co dzień zarządzamy. Czasem potrzebujemy na jednym blogu wyświetlić wpisy z określonej kategorii znajdujące się na innym blogu. W dodatku najlepiej, aby takie zajawki pojawiały się z właściwymi miniaturkami, również znajdującymi się na innej instalacji WordPressa.

Jak to zrobić?

Postaram się to dziś Wam wyjaśnić w jak najprostszy sposób, tak aby każdy mógł zaimplementować rozwiązanie nie rujnując swojej strony i co najważniejsze, nie używając dodatkowych wtyczek, które w pewnym stopniu mogą obciążać całą witrynę.

W prezentowanym sposobie skorzystamy z kanału nowości (RSS Feed), który domyślnie działa na każdym WordPressie i w którym znajdują się wszystkie, niezbędne dla Nas dane. No dobra, nie wszystkie, bo chcemy też miniaturki pobierać, więc na stronie z której będą zasysane artykuły włączmy obsługę mianturek dla wpisów jak i dodajmy do RSS Feed obsługę miniaturek. O tym jak to zrobić przeczytacie w Naszym poprzednim artykule.

Teraz zdecydujmy się, w którym dokładnie miejscu naszego motywu chcemy wyświetlać wpisy z innego bloga. Gdy już wiemy gdzie to zabieramy się za edycję odpowiedniego dla motywu wpisu. Nie powiem Wam, który dokładnie plik należy edytować bo to zależy w dużej mierze od używanego przez Was motywu i tego, gdzie dokładnie chcecie wstawić takie wpisy.

Jeśli zlokalizowaliście już odpowiednie miejsce to wklejcie tam kod jak poniżej, ale wczytajcie się w komentarze znajdujące się w kodzie, aby móc skonfigurować pod siebie dane funkcje:

<?php 
$rss = fetch_feed('http://www.strona.pl/feed'); //Tutaj podajcie adres strony, z której chcecie pobierać wpisy (adres kanału RSS Feed)


if (!is_wp_error( $rss ) ) : 
	
    $maxitems = $rss->get_item_quantity(5); // Pobieramy 5 ostatnich wpisów z kanału RSS
    $rss_items = $rss->get_items(0, $maxitems); 
endif;
?>
<?php function get_first_image_url($html)
		{
			if (preg_match('/<img.+?src="(.+?)"/', $html, $matches)) {
			return $matches[1];
			}
		}
?>	
 <?php
function shorten($string, $length)
{
    $suffix = '&hellip;';

$short_desc = trim(str_replace(array("/r", "/n", "/t"), ' ', strip_tags($string)));
    $desc = trim(substr($short_desc, 0, $length));
    $lastchar = substr($desc, -1, 1);
    	if ($lastchar == '.' || $lastchar == '!' || $lastchar == '?') $suffix='';
					$desc .= $suffix;
 		return $desc;
}
?>
<ul class="rss-items" id="wow-feed">
    <?php 
    	if ($maxitems == 0) echo '<li>Brak wpisów.</li>'; // Napis pojawiający się w przypadku braku wpisów do wyświetlenia
    	else 
    	foreach ( $rss_items as $item ) : ?>
    <li class="item">
    	<span class="rss-image">
    		<?php echo '<img src="' .get_first_image_url($item->get_content()). '"/>'; ?>
    	</span>
        <span class="data">
        	<h5><a href='<?php echo esc_url( $item->get_permalink() ); ?>' title='<?php echo esc_html( $item->get_title() ); ?>'> <?php echo esc_html( $item->get_title() ); ?></a></h5> 
			<span class="date-image">&nbsp;</span><small><?php echo $item->get_date('F Y'); ?> </small>
			<span class="comment-image">&nbsp;</span><small><?php $comments = $item->get_item_tags('http://purl.org/rss/1.0/modules/slash/', 'comments');?><?php $number = $comments[0]['data']; ?>
				<?php if ($number == '1'){ echo $number."&nbsp;". "Komentarz"; } else {echo $number. "&nbsp;"."Komentarzy";}?></small>
			<p><?php echo shorten($item-> get_description(),'150');?></p> // Pobrane zostanie 150 pierwszych znaków z zajawki każdego wpisu
        </span>
    </li>
    <?php endforeach; ?>
</ul>

Dodatkowo nie zapominajcie, że wszystko trzeba odpowiednio ostylować, aby pasowało idealnie do Waszego motywu (wyglądu strony). W tym celu edytujemy plik style.css naszego motywu dodając na jego końcu odpowiednie style, a poniżej macie przykład, który dowolnie można modyfikować. Pamiętajcie, że z pewnością nie będzie pasował do wyglądu Waszej strony, więc tu się musicie sami pomęczyć.

#wow-feed {
    background: #FFFFFF;
    border: 1px solid #AFAFB0;
    width: 600px;
    margin: 10px 0;
    font-size: 0.8em;
}
#wow-feed  li { list-style: none; }
#wow-feed .rss-image img {
    width: 100px;
    height: 100px;
    padding: 8px;
    border: solid 1px #eee;
}
#wow-feed .rss-image { width: 30%; }
#wow-feed .item {
    border-bottom: 1px solid #AFAFB0;
    padding: 10px;
}
#wow-feed .data {
    display: inline-block;
    margin-left: 2%;
    vertical-align: top;
    width: 70%;
}
#wow-feed .data h5 { font-weight: bold; }
#wow-feed .data small {
    color: #8F90CB;
    font-size: 0.9em;
    margin-right: 10%;
}
#wow-feed .comment-image {
    background: url("images/comments.png");
    height: 16px;
    width: 16px;
    vertical-align: middle;
    display: inline-block;
    margin-right: 2%;
}
#wow-feed .date-image {
    background: url("images/date.png");
    height: 16px;
    width: 16px;
    vertical-align: middle;
    display: inline-block;
    margin-right: 2%;
}

Pamiętajcie, że metoda ma pewne limity, a głównie ograniczona jest do tego co zawiera kanał RSS Feed bloga, z którego pobieracie najnowsze wpisy.

Jak dodać miniatury wpisów do kanału RSS Feed w WordPressie?

Jak dodać miniatury wpisów do kanału RSS Feed w WordPressie?

Ostatnio dość wiele pytań na czacie zaczyna się powtarzać, a jednym z nich jest to:

„Jak dodać miniaturkę do zajawek wpisów na kanale RSS?”

RSS chyba nie muszę nikomu tłumaczyć co to jest. Ale w skrócie powiem, że jest to tzw. kanał nowości. Kiedyś korzystanie z RSS było popularną czynnością i po dzień dzisiejszy osoby śledzące swoje ulubione blogi korzystają z tej formy powiadamiania o nowych wpisach. Jednak wśród motywów do WordPressa ze świeczką szukać takich, które w RSS umożliwiają umieszczenie prócz zajawki wpisu jego miniaturki. Tym samym musimy sami sobie włączyć taką opcję i wbrew pozorom nie jest to jakaś skomplikowana czynność.

Na samym początku musimy rozważyć dwie opcję. Twój blog na WordPressie posiada obsługę miniaturek wpisów albo nie posiada tejże funkcjonalności.

Zweryfikować to bardzo prosto, wystarczy sprawdzić swoje wpisy i to czy do każdego z nich możecie dodać miniaturkę, a jeśli nie ma takiej opcji to znaczy, że i ją musicie sobie sami włączyć.

Włączanie obsługi miniatur

Wejdźcie do panelu administracyjnego WordPressa, otwórzcie w menu Motywy i tak wybierzcie Edytor. Po prawej stronie wyszukajcie plik functions.php (Funkcje motywu). Otwórzcie go do edycji i sprawdźcie czy znajduje się tak linijka jak poniżej:

add_theme_support( 'post-thumbnails' );

Jeśli jej nie ma to musicie na samym końcu pliku functions.php wkleić powyższą linijkę i zapisać cały plik.

Przestrzegam jednak, że za każdą taką edycją warto gdzieś sobie skopiować obecną treść edytowanego pliku, aby móc przywrócić starą wersję w razie nieprzewidzianych problemów.

Jeśli wszystko działa i wkleiliście poprawnie wszystko to Wasz blog zaczął obsługiwać miniatury wpisów. Oczywiście aby wszystko działało jak należy musicie do każdego wpisu dodać odpowiednie miniatury, bez nich na pewno żadna Wam się nie wyświetli.

Dodanie miniatur do RSS Feed

Mamy już obsługę miniatur, więc zabieramy się za dołączenie ich do naszego kanału RSS. Powracamy do edycji pliku functions.php i na samym końcu doklejamy kod, który widzicie poniżej:

<?php
//add post thumbnails to RSS images
function cwc_rss_post_thumbnail($content) {
    global $post;
    if(has_post_thumbnail($post->ID)) {
        $content = '<p>' . get_the_post_thumbnail($post->ID) .
        '</p>' . get_the_excerpt();
    }
 
    return $content;
}
add_filter('the_excerpt_rss', 'cwc_rss_post_thumbnail');
add_filter('the_content_feed', 'cwc_rss_post_thumbnail');
?>

Zapisujemy edytowany plik no i gotowe. Sprawdźcie teraz kanał nowości, jeśli dodaliście do wpisów miniatury to będą one w nim widoczne.

WordPress: Dostęp do strony tylko dla zalogowanych

WordPress: Dostęp do strony tylko dla zalogowanych

W świecie WordPressa, gdzie coraz częściej strony pełnią funkcje nie tylko blogów, ale również platform edukacyjnych, zamkniętych społeczności, portali intranetowych czy serwisów z płatnym dostępem do treści – zarządzanie dostępem do zawartości staje się niezbędne. Właściciele witryn potrzebują coraz bardziej zaawansowanych i elastycznych rozwiązań, które umożliwią precyzyjne sterowanie tym, kto może zobaczyć daną treść, a kto nie. (więcej…)