WPML với WP_Query phục vụ cả 3 ngôn ngữ [đã đóng]


8

Tôi đã có vài thứ về điều này trên các diễn đàn hỗ trợ WPML, nhưng tôi đoán rằng tôi cũng có thể hỏi ở đây. Đây là thông tin quan trọng: Tôi đang chạy thiết lập WP Multisite với các loại bài đăng tùy chỉnh, trường tùy chỉnh, tùy chỉnh mọi thứ có vẻ như. Trong một tệp mẫu cụ thể, tôi đã có một vòng lặp thứ cấp kéo theo danh sách các mục từ một blog khác. Từ những gì tôi thu thập được, mọi thứ sử dụng API WP chỉ nên được lọc theo ngôn ngữ hiện tại, nhưng không có WP_Query()chức năng nào tôi có được làm như vậy.

Mã liên quan:

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

Vấn đề ở đây có hai mặt: đầu tiên, nó trả về kết quả từ mọi ngôn ngữ thay vì ngôn ngữ hiện tại - cùng một bài đăng, ba lần (EN, FR, DE). Thứ hai, kết quả từ get_permalink()là hoàn toàn sai - nó đã nhổ ra http://www.mysite.com/blog23name/postname thay vì http://www.mysite.com/blog23name/lang/posttype/postname - permalink tùy chỉnh được hiển thị trên trang 'chỉnh sửa bài'.

Có ý kiến ​​gì không?


1
IMO, thật không công bằng khi đặt câu hỏi về plugin cao cấp tại đây ...
brasofilo

"Không đẹp"? Bằng cách nào? Tại sao lại có thẻ cho WPML nếu không thể hỏi ở đây? Kiểm tra lại FAQ, bạn đời. Nó được cấp phép theo GPL (ngay cả phiên bản cao cấp), vì vậy về mặt kỹ thuật tôi có thể đăng bất kỳ đoạn mã liên quan nào cho người khác xem xét để khắc phục sự cố. Điều đó nói rằng, ít nhất một trong những vấn đề là vấn đề cốt lõi của WordPress - switch_to_blog()không vượt qua permalinks cho các loại bài đăng tùy chỉnh với get_permalink()- làm cho đây là một nơi tuyệt vời để hỏi về nó. Tuy nhiên, cảm ơn về downvote, nó hữu ích hơn nhiều so với việc thực sự đưa ra câu trả lời cho câu hỏi 2 tháng tuổi.
SickHippie

Họ có "phiên bản miễn phí" không? Nếu họ làm vậy, xin lỗi, tôi đã không biết ... Nếu họ không, việc có Thẻ không tha cho bất kỳ GPL nào ...
brasofilo

2
Có, đáng lẽ tôi nên đưa nó lên Meta trước khi bỏ phiếu, bây giờ tôi không thể hoàn tác nó. Cảm ơn bạn đã claryfying, @Bai Internet. SickHippie, có vẻ như bạn chưa có câu trả lời tại diễn đàn của họ, hy vọng một tâm hồn tốt, trong khi sửa đổi các câu hỏi cũ, tình cờ tìm thấy câu hỏi này và đưa ra câu trả lời. Trân trọng và xin lỗi vì sai lầm.
brasofilo

5
@brasofilo - không phải lo lắng, bạn đời. Tôi đã hơi quá căng thẳng vào ngày hôm qua, và xin lỗi vì thái độ hung hăng của tôi. Nó đã được mở ra cho, và tôi rất xin lỗi.
SickHippie

Câu trả lời:


2

Giải pháp của tôi là đăng ký các loại bài đăng tùy chỉnh trên trang web mà tôi đang gọi nó từ đó, sau đó trong cài đặt của WPML, đặt chúng thành dịch. Đây là trong WPML -> Quản lý dịch -> Thiết lập nội dung đa ngôn ngữ, ở phía dưới. Tôi cho rằng nó hoạt động bằng cách lừa WP sử dụng các quy tắc viết lại / dịch của trang web đó khi nó không có thông tin chính xác từ đó switch_to_blog().

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.