Pomysły na wpisy pojawiają się z różnych stron i w różnych miejscach. Tym razem zapytała mnie „podchwytliwie” kobieta ile to już wyrazów (i/lub znaków) łącznie napisałem we wszystkich wpisach na WebInsider.pl (a jest tego trochę). Przyznam, że jakoś do tej pory nawet nie myślałem o tym, że jest mi do czegokolwiek taka informacja potrzebna, ale skoro kobieta pyta… To ogólnie policzymy „to i owo” w WordPressie (na wypadek jakby i Wasza kobieta zadała kiedyś Wam takie pytanie ;-)).

Liczymy wpisy w WordPressie

Zanim przejdziemy do liczenia globalnego znaków i wyrazów we wszystkich postach, na początek rozgrzewka, czyli policzymy posty (wpisy) w naszym WordPressie. Wiem, że taka informacja jest dostępna w panelu zarządzania, ale być może kiedyś zapragniecie podzielić się z nią również z osobami niemającymi dostępu do tego panelu.

Nie będę rozbijał tego na poszczególne statusy, bo od razu chyba będzie wiadomo który element (zapytania/zmienna) odpowiada za wpisy o określonym statusie:

$wp_count_posts = wp_count_posts();

$wp_count_posts_publish = $wp_count_posts->publish;
$wp_count_posts_pending = $wp_count_posts->pending;
$wp_count_posts_future = $wp_count_posts->future;
$wp_count_posts_private = $wp_count_posts->private;
$wp_count_posts_draft = $wp_count_posts->draft;
$wp_count_posts_trash = $wp_count_posts->trash;

echo 'Opublikowane: ' . $wp_count_posts_publish . '<br />Oczekujące: ' . $wp_count_posts_pending . '<br />Zaplanowane: ' . $wp_count_posts_future . '<br />Prywatne: ' . $wp_count_posts_private . '<br />Szkice: ' . $wp_count_posts_draft . '<br />Kosz: ' .  $wp_count_posts_trash;

Możemy też policzyć ilość wpisów  w wybranej kategorii, w tym celu korzystamy z kodu:

echo get_category( 'ID_kategorii' )->category_count;

Liczymy komentarze w WordPressie

Skoro policzyliśmy wpisy, to może warto policzyć komentarze, zwłaszcza, że cała procedura wygląda dość podobnie:

$wp_count_comments = wp_count_comments();

$wp_count_comments_approved = $wp_count_comments->approved;
$wp_count_comments_moderated = $wp_count_comments->moderated;
$wp_count_comments_spam = $wp_count_comments->spam;
$wp_count_comments_trash = $wp_count_comments->trash;

echo 'Zatwierdzone: ' . $wp_count_comments_approved . '<br />Oczekujące: ' . $wp_count_comments_moderated . '<br />SPAM: ' . $wp_count_comments_spam . '<br />Kosz: ' . $wp_count_comments_trash;

Liczymy ile wyrazów i znaków jest we wpisie w WordPressie

Rozgrzewka za nami, więc możemy przystąpić do liczenia wyrazów i znaków. Na początek w danym wpisie (można zastosować np. obok informacji o dacie ostatniej aktualizacji wpisu).

Pamiętajcie, że jest to liczenie automatyczne i orientacyjne, które opiera się na analizie „zawartości wpisu” (post content) i choć będziemy usuwać „dodatkowe znaki/znaczniki” (strip_tags) to zawsze coś może się prześliznąć.

Liczymy wyrazy:

$wp_post_content_words = str_word_count( strip_tags( get_post_field( 'post_content', get_the_ID() ) ) );
echo $wp_post_content_words;

Liczymy znaki:

$wp_post_content_characters = strlen( strip_tags( get_post_field( 'post_content', get_the_ID() ) ) );
echo $wp_post_content_characters;

I zestawienie zbiorcze:

$wp_post_content_words = str_word_count( strip_tags( get_post_field( 'post_content', get_the_ID() ) ) );
$wp_post_content_characters = strlen( strip_tags( get_post_field( 'post_content', get_the_ID() ) ) );

echo 'Wyrazy: ' . $wp_post_content_words . ', znaki: ' . $wp_post_content_characters;

Liczymy ile wyrazów i znaków jest we wszystkich wpisach w WordPressie

W tym momencie możemy już chyba zabrać się za liczenie znaków i wyrazów we wszystkich wpisach – pamiętajcie, że w przypadku bardziej „bogatych w treść” stron może to chwile zająć i zmęczyć serwer, stąd raczej potraktujcie to jako ciekawostkę, np. do zaimponowania dziewczynie Waszą płodnością (jeśli chodzi o pisanie ;-)), niż jako stały element motywu/strony.

Klasycznie zaczynamy od poleczenia wyrazów:

$wp_all_posts_content_count_words = 0;

$posts = get_posts( array(
    'numberposts' => -1,
    'post_type' => 'post',
    'post_status' => 'all'
) );

foreach( $posts as $post ) {
    $wp_all_posts_content_count_words += str_word_count( strip_tags( get_post_field( 'post_content', get_the_ID() ) ) );
}

echo $wp_all_posts_content_count_words;

Następnie liczymy znaki:

$wp_all_posts_content_count_characters = 0;

$posts = get_posts( array(
    'numberposts' => -1,
    'post_type' => 'post',
    'post_status' => 'all'
) );

foreach( $posts as $post ) {
    $wp_all_posts_content_count_characters += strlen( strip_tags( get_post_field( 'post_content', get_the_ID() ) ) );
}

echo $wp_all_posts_content_count_characters;

I na koniec wersja z liczeniem wyrazów i znaków, a do tego średnia długość wyrazu (ach ta magia statystyk):

$wp_all_posts_content_count_words = 0;
$wp_all_posts_content_count_characters = 0;

$posts = get_posts( array(
    'numberposts' => -1,
    'post_type' => 'post',
    'post_status' => 'all'
) );

foreach( $posts as $post ) {
    $wp_all_posts_content_count_words += str_word_count( strip_tags( get_post_field( 'post_content', get_the_ID() ) ) );
    $wp_all_posts_content_count_characters += strlen( strip_tags( get_post_field( 'post_content', get_the_ID() ) ) );
}

$wp_all_posts_content_count_average = $wp_all_posts_content_count_characters / $wp_all_posts_content_count_words;
$wp_all_posts_content_count_average = round( $wp_all_posts_content_count_average, 2 );

echo 'Wyrazy: ' . $wp_all_posts_content_count_words . ', znaki: ' . $wp_all_posts_content_count_characters . ' średnia: ' . $wp_all_posts_content_count_average;

Pamiętaj, to jest PHP

Oczywiście wszystkie przedstawione przykłady do kod PHP, więc nie zapomnijcie w razie konieczności „ubrać” ich w odpowiednie znaczniki:

<?php

[TU WSTAW KOD]

?>

Niby rzecz oczywista, ale potem pojawiają się pytania/komentarze, że zamiast wyniku pojawia się na stronie kod… ;-)

Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
Młody Szymon dzięki motywowi Divi od Elegant Themes zrobił stronę dla firmy ojca
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Młody Szymon pomógł tacie zapisać się do Newslettera WebInsider.pl i... teraz idzie popływać