Как показать общее количество просмотров пользователя в теме сообщества WordPress? - PullRequest
0 голосов
/ 04 июля 2018

Итак, здесь я использую тему Boombox для своего веб-сайта сообщества и хочу показать «Всего просмотров / просмотров» от пользователя, например, у пользователя 10 постов и различные просмотры каждого поста, мне нужен общий просмотр из всего поста А. Возможно ли сделать это на платформе WordPress? так как я обнаружил в своих таблицах базы данных, я не смог найти ни одного связанного поля, для которого я мог бы «играть».

Я пытался изменить функцию update_post_meta, пытался добавить еще одно условие в файл function.php, но он не работает.

вот функция:

function boombox_update_post_total_view( $scale, $post_id ) {
    if( absint( $scale ) > 0 ) {
        $total = intval( boombox_get_post_meta( $post_id, 'total_views' ) );
        $total += $scale;

        update_post_meta( $post_id, 'total_views', $total);

    }
}

add_action( 'boombox/view_total_updated', 'boombox_update_post_total_view', 10, 2 );

и вот структура таблицы базы данных: структура таблицы базы данных

спасибо. NB. Я даже не уверен, что редактировал правильный файл.

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

вот код, который я использовал сейчас:)

 <?php
                                            $profile_id = bp_get_member_user_id();
                                            $balance    = mycred_get_users_balance( $profile_id );
                                            $author_id = ''; // do stuff to get user ID
                                            $author_posts = get_posts( array(
                                                'author' => $profile_id
                                            ) );

                                            $counter = 0; // needed to collect the total sum of views

                                            foreach ( $author_posts as $post )
                                            {
                                                $views = absint( boombox_get_post_meta( $post->ID, 'total_views', true ) );
                                                $counter += $views;
                                            }
                                        ?>
0 голосов
/ 04 июля 2018

Это будет работать с любой темой.

Шаг 1: Добавьте этот код из следующего блока в файл тем function.php .

function getPostViews($postID){
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
        return "0 View";
    }
    return $count.' Views';
}
function setPostViews($postID) {
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        $count = 0;
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
    }else{
        $count++;
        update_post_meta($postID, $count_key, $count);
    }
}
// Remove issues with prefetching adding extra views
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

Шаг 2: Добавьте эту строку кода в файл single.php . Обратите внимание, что это должно быть внутри цикла, вы можете добавить его сразу после the_content():

setPostViews(get_the_ID());

Например, оно должно быть:

the_content(); setPostViews(get_the_ID());

Шаг 3: Добавьте эту строку кода, где вы хотите показать общее количество просмотров сообщения:

echo getPostViews(get_the_ID());

Источник: https://www.themexpert.com/blog/track-display-post-views-in-wordpress

...