Как получить информацию о текущей странице постраничного поста в Wordpress? - PullRequest
0 голосов
/ 22 сентября 2011

Какие-либо предложения о том, как я могу получить количество слов текущей страницы постраничного поста в Wordpress?И вообще, как получить информацию только о текущей странице постраничного поста (разбитого на страницы с использованием "").

Я создал функцию wordcount на основе этого полезного поста в блоге: http://bacsoftwareconsulting.com/blog/index.php/wordpress-cat/how-to-display-word-count-of-wordpress-posts-without-a-plugin/но это дает мне общее количество слов для всего сообщения, а не только для текущей страницы.

Большое спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 30 сентября 2011

Используйте $wp_query, чтобы получить доступ к содержимому публикации и текущему номеру страницы, затем разделите содержимое публикации на страницы, используя PHP explode(), уберите все HTML-теги из содержимое использует strip_tags(), потому что они не считаются словами и, наконец, считают слова только текущей страницы с помощью str_word_count().

function paginated_post_word_count() {
    global $wp_query;

    // $wp_query->post->post_content is only available during the loop
    if( empty( $wp_query->post ) )
        return;

    // Split the current post's content into an array with the content of each page as an item
    $post_pages = explode( "<!--nextpage-->", $wp_query->post->post_content );

    // Determine the current page; because the array $post_pages starts with index 0, but pages
    // start with 1, we need to subtract 1
    $current_page = ( isset( $wp_query->query_vars['page'] ) ? $wp_query->query_vars['page'] : 1 ) - 1;

    // Count the words of the current post
    $word_count = str_word_count( strip_tags( $post_pages[$current_page] ) );

    return $word_count;

}
0 голосов
/ 30 сентября 2011

Вам нужно будет посчитать слова всех постов на странице. Предполагая, что это внутри цикла, вы можете определить глобальную переменную, инициализированную нулем, а затем подсчитать слова, отображаемые в каждом сообщении, используя метод, предложенный в опубликованной вами ссылке.

Что-то в этом ряду -

$word_count = 0;

if ( have_posts() ) : while ( have_posts() ) : the_post();
    global $word_count;
    $word_count += str_word_count(strip_tags($post->post_excerpt), 0, ' ');
endwhile;
endif;
...