WordPress

Brakuje „polubień” na WordPress

20 października 2018
Kategoria: WordPress tagi: , ,

WordPress to system zarządzania stroną internetową, działająca całkowicie za darmo. Jest to potężny CMS, który może być zastosowany do wszelkiego rodzaju stron. Ma jednak jedną wadę, a może raczej brak pewnej funkcji, która sprawiłaby, że WordPress byłby jeszcze lepszy. Fajnie by było, gdyby każdy właściciel strony posiadający ją w WordPress, mógł np. za pośrednictwem kliknięcia dodać do ulubionych inną stronę, która także działa na WordPressie. Taka funkcja działa tylko wtedy, gdy jesteśmy zarejestrowani na wordpress.com i tam posiadamy bloga. Możemy dodać do ulubionych inny blog z wordpress.com, a po zalogowaniu się do panelu administracyjnego zobaczymy najnowsze wpisy.

Podobnie działa Tumblr. Jeśli dodamy kogoś do ulubionych, widzimy jego posty w „dashboard”. Podobnie jest na Facebooku czy Twitterze. To właśnie w szybkości docierania do innych użytkowników za pośrednictwem dodania do ulubionych sprawia, że zawsze będziemy na bieżąco, zawsze możemy szybko napisać komentarz i co najważniejsze, pamiętać o innych blogerach. Brakuje tego typu rozwiązania w standardowej wersji WordPressa na własne serwery. Gdyby była, zapewne powiązania między blogerami byłyby lepsze i zapewne pisanie na blogu miałoby dla samego blogera większą wartość.

Oczywiście nie podlega dyskusji, że każdy mógłby np., wyłączyć funkcję dodawania swojego bloga do ulubionych. Chociaż nie wiem, czy w tym przypadku miałaby jakikolwiek sens, bo np., ilość stron firmowych na Facebooku jest już chyba większa niż oficjalnych stron firmowych. A wszystko tylko dlatego, że ludzie dodają je do ulubionych na Facebooku i na bieżąco wiedzą co się dzieje, a firma w trybie natychmiastowym promuje swoje produkty tym, którzy są nimi zainteresowani. W przypadku oficjalnych stron internetowych na WordPress dałoby to możliwość dodania strony do ulubionych, szybszego dotarcia do potencjalnego klienta, więc i sens ich tworzenia i regularnego aktualizowania byłby większy.

W przypadku mojego bloga taka funkcja też byłaby przydatna, nie tylko dlatego, że mój blog trafiłby na „pulpit” innego użytkownika, ale dlatego, że sam miałbym w nim dodane adresy innych blogerów i tym samym tworzyłbym wraz z nimi społeczność WordPress.

Niestety taka funkcja prawdopodobnie nigdy nie powstanie, a to tylko dlatego, by użytkownicy zakładali swoje konta na wordpress.com i tam mogli wykupić abonament i korzystać z tej funkcji. Gdyby jednak taka funkcja weszła w życie, musiałaby być standardowym rozwiązaniem popieranym przez twórców WordPressa, a nie jako wtyczka. Wtyczka byłaby zapewne zbyt mało powszechna i pewnie niewielu blogerów skorzystałoby z takiej możliwości lub niewielu wiedziałoby, że takowa istnieje.

Już nie raz się zastanawiałem, czy czasami nie skorzystać z płatnej wersji wordpress.com i nie założyć tam bloga za 14 złotych miesięcznie, mając do dyspozycji 6GB powierzchni na pliki i domenę w cenie. W sumie na rok daje to koszt około 170 złotych, ale gdyby policzyć cenę domeny i serwer, to koszt porównywalny by był z tym, jaki ponoszę za własny serwer i domenę. Wtedy jednak docierałbym do szerszego grona czytelników, a i ja w panelu administracyjnym miałbym tych, „których lubię czytać”…

Gdyby ktoś jeszcze nie odkrył, na czym polega fenomen takich portali społecznościowych jak Facebook czy Twitter, to odpowiadam wprost. – A no na tym, że dają szybką możliwość dotarcia do informacji. Gdyby WordPress chciał skorzystać z tej możliwości, zapewne sens tworzenia oficjalnych stron internetowych byłby jeszcze większy, ale i notowania samego WordPressa przebiłyby zapewne niejeden sufit…

Automatyczne skracanie posta do jednego akapitu

13 lutego 2015
Kategoria: WordPress

Chcesz, aby na Twojej stronie głównej i w kategoriach wpisy automatycznie skracały się do jednego akapitu? Wystarczy zainstalować wtyczkę, lub dodać kod do pliku functions.php

Kod w functions.php:
if(!function_exists ('get_the_content_first_paragraph')) :
function get_the_content_first_paragraph() {
$content = get_the_content();
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
$content_explode = explode("</p>", $content);

$c = 0; $p = count($content_explode); $return_data = "";
while($c < $p) {
$test = strip_tags($content_explode[$c]);
if($test != '') {
$return_data = $return_data . $content_explode[$c] . "</p>n";
$return_data = preg_replace('/<img[^>]+./','', $return_data);
break;
} $c++;
}
return $return_data;
}
endif;

W plikach index.php, archive.php czy search.php zamień kod: <?php the_content(); ?> lub <?php the_excerpt(); ?> na następujący:

<?php
if($pos = strpos($post->post_content, '<!--more-->')) :
the_content(__(''));
else :
echo get_the_content_first_paragraph();
endif;
?>

UWAGA!
Jeśli potrzebujesz wyjątkowo dodać krótszy lub dłuższy wpis niż jeden akapit, posłuż się we wpisie funkcją <!--more-->.

Zamiast dodawać kod do pliku functions.php, możesz użyć wtyczki „Excerpt First Paragraph„. Gdyby strona z jakiś powodów zniknęła wraz z wtyczką, możecie ją też pobrać z mojego serwera.

Żródło: schurpf.com

Automatycznie usuwamy szerokość i wysokość obrazka w WordPress

19 października 2014
Kategoria: WordPress

Od ponad dekady korzystam z WordPress-a. Zapewne wiecie, że zmienianie motywu (szablonu) jest rzeczą naturalną. Już nie raz mówiłem sobie. – Ten szablon zostanie ze mną na zawsze. Ale słowo klucz „zawsze” nie jest ma miejscu w tej sprawie. Zmieniają się nasze upodobania, a szczególnie wtedy, gdy sami potrafimy zrobić sobie stronę. Zrozumiałem więc, że osadzanie obrazów we wpisach musi być tak przeprowadzone, by zmiana szablonu i ewentualna zmiana wielkości miejsca na „content” nie wymagała edycji każdego wpisu w panelu administracyjnym.

Dlatego też, ze szczególnym okrucieństwem nakładam nacisk na to, by we wpisie dodając obrazek usunąć z niego parametry width i height.

<img src="http://www.kurdu.pl/wp-content/uploads/2014/03/fb.png" alt="fb" width=”128″ height=”128″ class="alignleft size-full wp-image-387" /></a>

Najlepiej przeprowadzić to tak, aby szerokość i wysokość nie pojawiała się podczas dodawania obrazka automatycznie. Aby tego dokonać należy w pliku functions.php dodać kod:

add_filter( 'image_send_to_editor', 'remove_width_attribute', 10 );
function remove_width_attribute( $html ) {
$html = preg_replace( '/(width|height)="d*"s/', "", $html );
return $html;

W pliku css każdego ze swoich szablonów dodaje dodatkowy parametr max-width, by obrazek automatycznie dopasował się co „contentu” czyli treści.

.alignleft {float:left; max-width:300px;}
.aligncenter {display:block; margin:0 auto; max-width:100%}
.alignright {float:right; max-width:300px;}
.alignnone {display:block}

Zauważcie, że w klasie .alignleft oraz .alignright podałem maksymalną szerokość (max-width) jaką może posiadać obrazek w tym szablonie. W klasie .aligncenter szerokość wyznaczona jest w procentach co oznacza, że jego szerokość maksymalna będzie taka jak kontener, w której zawarta jest treść. Jeśli więc zmienicie szablon i będziecie chcieli zmienić wielkość obrazka, to wystarczy zmienić je tylko w stylu zmieniając szerokość .alignleft i .alignright i sprawa będzie załatwiona bez edytowania dziesiątek albo setek wpisów. Warto podkreślić, że podanie parametru max- width sprawi, że obrazek będzie maksymalnej wielkości np., 300px, ale jeśli obrazek będzie mniejszy, to nie zostanie rozciągnięty.

Stosuję tą metodę przy każdym motywie jaki wykonuję na WordPress.

Zajawka

19 maja 2014
Kategoria: WordPress

„Zajawka”, to dość stara funkcja w WordPress (od wersji 3.1), ale chyba nie wszyscy wiedzą do czego służy i jak ją wykorzystać. Mam też wrażenie, że jest niedoceniana, ale przyznam szczerze, że jest genialnym rozwiązaniem.

Wyobrażam sobie, że masz stronę, dodajesz wpis i chcesz, aby na stronie głównej czy w kategorii pojawiała się zajawka. Nie skrót wpisu czy jego fragment, lecz tekst, który opisuje co znajduje się we wpisie. Jak tego dokonać?

Otwórz plik functions.php i wstaw kod:
function new_excerpt_more( $more ) {
return ' <a class="dalej" href="'. get_permalink( get_the_ID() ) . '">' . __(' ...Czytaj dalej', 'your-text-domain') . '</a>';
}
add_filter( 'excerpt_more', 'new_excerpt_more' );

Teraz będąc w panelu administracyjnym WordPress, wejdź na WPISY kliknij na jakiś wpis lub DODAJ NOWY. Na górze strony otwórz „OPCJE EKRANU”.
zajawka

Po rozwinięciu znajdź i zaznacz „ZAJAWKA”.
zajawka 2

Teraz pod oknem z treścią wpisu pojawi się dodatkowe pole „ZAJAWKA’.
zajawka 3

Jeśli to pole pozostawisz puste, w treści wpisu widoczny będzie fragment wpisu. Jeśli coś w to pole wpiszesz, treść ta widoczna będzie na stronie głównej, w archiwach czy wyszukiwarce. Jednym zdaniem, treść będzie widoczna tam, gdzie wstawisz kod:
<?php the_excerpt(); ?>

Skracanie tytułu

26 września 2013
Kategoria: WordPress

W tej poradzie dowiesz się, jak skrócić tytuł wpisu w WordPress do określonej liczby znaków tak, by nie uciąć ostatniego słowa. Aby tego dokonać, należy standardowy kod wyświetlający tytuł:
<php the_title(); ?> zastąpić o wiele dłuższym, ale sprawdzającym się w boju kodzie:

<?php if (strlen(the_title('','',FALSE)) > 30) { //liczba znaków
$title_short = substr(the_title('','',FALSE), 0, 30); //liczba znaków
preg_match('/^(.*)\s/s', $title_short, $matches);
if ($matches[1]) $title_short = $matches[1];
$title_short = $title_short.' ...';
} else {
$title_short = the_title('','',FALSE);
} ?>

<?php echo $title_short ?>

Za ilość znaków odpowiadają dwie pierwsze linie. W przypadku powyżej to liczba 30. – Gdy tytuł ma 30 lub więcej znaków, zostanie skrócony do tylu słów, które łącznie nie zawierają 30 znaków. Przykład. – Jeśli tytuł brzmi „Słonie są doskonale przystosowane do życia na wolności”, skrócony on zostanie do „Słonie są doskonale…”. A wszystko dlatego, że kolejne słowo „przystosowane” przekracza owe 30 znaków, dlatego nie jest wyświetlane.

Sygnalizowanie nowości w WordPress

22 czerwca 2011
Kategoria: WordPress

Dodaliście nowy wpis na blogu i chcielibyście, aby przy wpisie pojawił się obrazek „nowość” sygnalizujący użytkownikom, że wpis jest nowy. Chcecie, aby obrazek „new” przy wpisie widoczny był przez 24 godziny lub kilka dni od momentu jego dodania. Rozwiązania szukałem długo i w sumie znalazłem skrypt, który zmodyfikowałem dla potrzeb WordPressa.

news

Między znaczniki <head> </head> wstaw:


<script type="text/javascript">
// <![CDATA[
function nowosc(dzien, miesiac, rok, godzina, minuta, napis, obrazek)
{
var obrazek_domyslny = '<?php bloginfo('template_url'); ?>/images/new.png';
var napis_domyslny = 'new'; // tekst alternatywny
if (typeof obrazek == 'undefined') obrazek = obrazek_domyslny;
if (typeof napis == 'undefined') napis = napis_domyslny;
if (typeof godzina == 'undefined') godzina = 0;
if (typeof minuta == 'undefined') minuta = 0;
if (new Date(rok, miesiac-1,dzien, godzina, minuta) > new Date()) document.write(obrazek ? '<img src="' + obrazek + '" alt="' + napis + '"' + (napis != '' ? ' title="' + napis + '"' : '') + ' />': napis);
}
// ]]>
</script>

UWAGA!
W miejscu var obrazek_domyslny = '<?php bloginfo('template_url'); ?>/images/new.png'; wstaw link do pliku graficznego. W powyższym przypadku odsyła do folderu z szablonem, a następnie do folderu „images” i pliku new.png.

Możecie też dodać własną klasę stylu do obrazka w tym miejscu:
<img class="nazwa_stylu" src="' + obrazek + '" alt="' + napis + '"' + (napis != '' ? ' title="' + napis + '"' : '') + ' />.

W miejscu, w którym ma pojawić się obrazek sygnalizujący nowość wstaw kod:


<script>
// <![CDATA[
nowosc( <?php echo date_i18n( 'j,n,Y, G,i', get_the_time( 'U' ) + 1 * 86400 ); ?>);
// ]]>
</script>

UWAGA!
Zwróć uwagę na wartość 86400. To oznacza ile sekund ma być sygnalizowana nowość. W tym przypadku to jedna doba. Możecie ją zwiększyć bądź zmniejszyć według własnych potrzeb.

Szablony kategorii i postów

9 marca 2010
Kategoria: WordPress tagi:

Jakiś czas temu poszukiwałem rozwiązania, aby nieco urozmaicić swojego poprzedniego bloga. Chciałem, aby każda ze stron kategorii (archive.php) i postów (single.php) miały inny szablon. Rozwiązanie dla kategorii jest bardzo proste. Wystarczy wgrać na serwer, do folderu szablonu pliki o nazwie category-ID.php – gdzie „ID” odpowiada numerowi kategorii / lub category-NAME.php, gdzie „NAME” to nazwa kategorii.

Aby sprawdzić id dla danej kategorii, wystarczy w panelu administracyjnym, wejść na zakładkę „wpisy”, a następnie „kategorie”. Najeżdżając kursorem na nazwę danej kategorii, w pasku na dole przeglądarki zobaczymy link. Na przykład na moim blogu dział „wordpress” ma id 4, link więc wygląda tak „categories.php?action=edit&cat_ID=4”. Numer na końcu oznacza jej „id”, w tym przypadku jest to numer 4. Jeśli więc chciałbym, aby dział „wordpress” o numerze id=4 wyglądał inaczej niż reszta kategorii wystarczy, że stworzysz szablon zapisując go w pliku category-4.php / lub category-wordpress.php.

Z szablonami dla wpisów danej kategorii też nie ma wielkiego problemu, ale musimy troszkę kombinować. W pliku single.php musimy wgrać następujący kod:

<?php
$post = $wp_query->post;

if (in_category('1')) {
include(TEMPLATEPATH.'/single1.php');

} elseif (in_category('3')) {
include(TEMPLATEPATH.'/single3.php');

} elseif (in_category('4')) {
include(TEMPLATEPATH.'/single4.php');

} else {
include(TEMPLATEPATH.'/single_default.php');
}
?>

W miejsce numeru w kodzie:
if (in_category(‚4‚)) { wpisujemy numer id dla danej kategorii wpisów. Według poprzedniego przykładu „4”, to id dla wpisów z kategorii „wordpress”. Następnie podajemy nazwę pliku php
include(TEMPLATEPATH.’/single4.php‚);
w którym tworzymy własny szablon – w typ przypadku single-4.php. Powtarzamy tę czynność dla tylu kategorii ilu chcemy. Te kategorie, które mają korzystać z domyślnego szablonu zapisujemy do pliku pod nazwą single_default.php, za który odpowiada kod:
include(TEMPLATEPATH.’/single_default.php‚); .

stat4u