Podliczamy WordPressa, czyli liczymy wpisy i komentarze, oraz wyrazy i znaki we wpisach na naszej stronie
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 ;-)).
Spis treści w artykule
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).
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… ;-)
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01
Przyda się administratorom blogów, którzy płacą redaktorom za napisanie tekstów :)
No jest to jakieś zastosowanie, w dodatku być może bardziej sensowne niż potencjalny „szpan przed kobietą” ;-)