Pamerkan taksonomi tersuai yang paling banyak dilihat daripada kitaran siaran WordPress dan alih keluar nilai pendua
P粉547362845
P粉547362845 2024-02-26 15:00:25
0
1
406

Saya sedang mencipta gelung yang memaparkan taksonomi yang paling kerap dilawati di tapak web. Saya tahu WordPress tidak menjejaki taksonomi dan paparan kategori. Jadi saya memasukkan penjejak ke dalam siaran untuk membuat gelung dengan siaran yang paling banyak dilihat dan kemudian memaparkan taksonomi siaran itu pada halaman utama.

Kredit kod kepada isitwp

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

Selepas memasukkan penjejak, buat gelung untuk memaparkan siaran yang paling banyak dilihat

Kod adalah seperti berikut:

<?php
$popular = array(
    'post_type'         => 'videos',
    'posts_per_page'    => 8,
    'meta_key'          => 'post_views_count', // setPostViews($postID) function;
    'orderby'           => 'meta_value_num',
    'order'             => 'ASC',
    'offset'            => 1,
);

$popular_loop = new WP_Query( $popular );

if( $popular_loop->have_posts() ){

    while( $popular_loop->have_posts() ) : $popular_loop->the_post();

        $terms = get_the_terms( $post->ID, 'seasons' ); 

        foreach($terms as $term) {

            $ids = $term->term_id;

            $arr = explode( ',', $ids );

            $arr_unique = array_unique( $arr );

            $str = implode( $arr_unique );

            if($term->parent != 0){
                /**
                 * Taxonomie has children get the parent ID
                */
                echo '<p>Return parent unique:' . $str . '</p>';
            
            } else {
                /**
                 * Taxonomie has NO children get the current taxonomy ID 
                */
                echo '<p>Return unique:' . $str . '</p>';
            }

        }

    endwhile;

} else {
    return false;
} wp_reset_postdata();

Masalahnya ialah kerana saya mahu ia dipaparkan name、id、链接、图像等。浏览次数最多的帖子的父分类法中,它们开始重复自己,我想排除重复项,这样每次有人访问与同一分类法不同的帖子时就不会重复我尝试了 array_unique() tetapi ia terus mengembalikan nilai pendua kepada saya.

Adakah terdapat cara untuk mengalih keluar nilai pendua dalam satu gelung?

P粉547362845
P粉547362845

membalas semua(1)
P粉545910687

Saya berjaya menyelesaikan masalah saya, saya memohon maaf jika soalan saya mengelirukan atau tidak memuaskan hati sesetengah pengguna

Kod adalah seperti berikut:

 'videos',
    'posts_per_page'    => 8,
    'order'             => 'ASC',
);

$popular_loop = new WP_Query( $popular );

if( $popular_loop->have_posts() ){

    // Get the terms array
    $unique = [];

    while( $popular_loop->have_posts() ) : $popular_loop->the_post();

        // Taxonomy loop post
        $terms = get_the_terms( $post->ID, 'seasons' ); 

        foreach($terms as $term) {

            // Get the unique array from loop
            if( !in_array( $term->term_id, $unique ) ){
                $unique[] = $term->term_id;

                // Get unique ID from Taxonomy
                echo $term->term_id;

                // Get Unique name fromt Taxonomy
                echo $term->name;
                
            }

        }

    endwhile;

} else {

    echo 'Nothing';

} wp_reset_postdata();
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan