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… ;-)

Zgłoś błąd na stronie

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.