WPML dengan WP_Query yang menyajikan semua 3 bahasa [ditutup]


8

Saya punya sesuatu tentang ini di forum dukungan WPML, tapi saya pikir saya bisa bertanya di sini juga. Inilah info penting: Saya sedang menjalankan pengaturan WP Multisite dengan tipe posting khusus, bidang khusus, kustomisasi segala sesuatu yang tampak. Dalam file templat tertentu, saya memiliki loop sekunder yang menarik daftar item dari blog yang berbeda. Dari apa yang saya kumpulkan, apa pun yang menggunakan API WP harus difilter hanya ke bahasa saat ini, tetapi tidak ada WP_Query()fungsi yang saya lakukan.

Kode yang relevan:

<?php 
 switch_to_blog(23);
$args = array('post_type' => 'release-notes',
    'suppress_filters' => 0,
    'meta_query' => array(
            array(
                'key' => 'related_products',
                'value' => $thisproduct,
                'compare' => 'LIKE'
            )
        )
    );
$loop = new WP_Query($args);
if ($loop->have_posts()) {
    echo '<h2>Release Notes</h2>';
    while ( $loop->have_posts() ) : $loop->the_post();
        //echo '<pre>';
        //print_r($post);
        //echo '</pre>';
        $post_link = ($post->post_name);
        echo '<p><a class="text-link" href="' . get_permalink() . '">' . get_the_title() . '</a></p>';
    endwhile; // foreach($posts
} // if ($results
restore_current_blog();
?>

Masalahnya di sini ada dua: pertama, itu mengembalikan hasil dari setiap bahasa, bukan bahasa saat ini - posting yang sama, tiga kali (EN, FR, DE). Kedua, hasil dari get_permalink()sepenuhnya salah - itu memuntahkan http://www.mysite.com/blog23name/postname alih-alih http://www.mysite.com/blog23name/lang/posttype/postname - permalink kustom yang ditampilkan pada halaman 'edit posting'.

Ada ide?


1
IMO, tidak adil mengajukan pertanyaan plugin premium di sini ...
brasofilo

"Tidak adil"? Dengan cara apa? Mengapa ada tag untuk WPML jika tidak bisa ditanyakan di sini? Periksa lagi FAQ, sobat. Ini dilisensikan di bawah GPL (bahkan versi premium), jadi secara teknis saya bisa mengirim potongan kode yang relevan untuk dilihat orang lain untuk pemecahan masalah. Yang mengatakan, setidaknya salah satu masalah adalah masalah inti WordPress - switch_to_blog()tidak melewatkan permalink untuk jenis posting khusus get_permalink()- menjadikan ini tempat yang tepat untuk bertanya tentang hal itu. Terima kasih untuk downvote, meskipun, ini jauh lebih bermanfaat daripada benar-benar datang dengan jawaban untuk pertanyaan lama 2 bulan.
SickHippie

Apakah mereka memiliki "versi gratis"? Jika mereka melakukannya, maaf, saya tidak sadar ... Jika mereka tidak, memiliki Tag tidak memaafkan GPL ...
brasofilo

2
Ya, saya seharusnya membawanya ke Meta sebelum downvoting, sekarang saya tidak bisa membatalkannya. Terima kasih telah melakukan claryfying, @Bainternet. SickHippie, sepertinya Anda belum mendapat jawaban di forum mereka, berharap ada jiwa yang baik, sambil merevisi pertanyaan lama, tersandung pada yang satu ini dan membesarkannya. Salam dan maaf atas kesalahannya.
brasofilo

5
@brasofilo - jangan khawatir, sobat. Saya agak tertekan kemarin, dan meminta maaf atas sikap agresif saya. Itu tidak pantas untuk, dan saya sangat menyesal.
SickHippie

Jawaban:


2

Solusi saya adalah mendaftarkan jenis posting khusus di situs tempat saya memanggilnya, lalu dalam pengaturan WPML aturlah untuk menerjemahkan. Ini ada di WPML -> Manajemen Terjemahan -> Pengaturan Konten Multilingual, di bagian bawah. Saya menganggap itu bekerja dengan menipu WP agar menggunakan aturan penulisan ulang / menerjemahkan situs itu ketika tidak memiliki info yang tepat switch_to_blog().

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.