Rumah  >  Soal Jawab  >  teks badan

Pamerkan taksonomi tersuai yang paling banyak dilihat daripada kitaran siaran WordPress dan alih keluar nilai pendua

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粉547362845P粉547362845259 hari yang lalu383

membalas semua(1)saya akan balas

  • P粉545910687

    P粉5459106872024-02-27 12:17:30

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

    balas
    0
  • Batalbalas