Menautkan Dua Jenis Posting

8

dan terima kasih sebelumnya atas bantuan Anda.

Saya telah melakukan pencarian, dan pertanyaan ini telah dijawab beberapa kali dengan mengacu pada plugin "posting 2 posting", tetapi dokumentasi tentang itu sangat "coder-centric" - Saya dapat dan merasa nyaman mendapatkan tangan kotor, tapi saya memang memerlukan dokumentasi Langkah-demi-Langkah yang lebih baik daripada apa yang tersedia di sana. :)

Inilah yang saya butuhkan. Saya menggunakan gPress untuk menghasilkan "Tempat" menggunakan jenis posting khusus mereka. Ini bekerja dengan sangat baik. Yang perlu saya lakukan adalah dapat menambahkan "Acara" ke suatu Tempat. Saya dapat menggunakan jenis posting khusus untuk menangkap semua detail acara, tetapi kemudian saya ingin dapat melampirkan Acara ke Tempat tertentu, dan sebaliknya. Jika seseorang melihat posting Acara, akan ada cara yang agak mudah untuk juga menarik informasi Place terkait dengan Acara.

Ada saran yang dihargai!

John
sumber

Jawaban:

9

Posting-ke-posting Scribu adalah plugin yang bagus dan sederhana, saya yakin kami dapat membantu Anda membuatnya berfungsi. Penggunaan dasar cukup mudah.

dengan asumsi jenis posting kustom Anda dinamai 'place'dan 'event', kode berikut akan masuk ke file functions.php tema Anda:

function my_connection_types() {
    p2p_register_connection_type( array(
        'name' => 'events_to_places', 
        'from' => 'event',
        'to' => 'place',
    ) );
}
add_action( 'p2p_init', 'my_connection_types', 100 );

ini akan membuat kotak meta untuk menetapkan hubungan tersedia di layar edit pos kustom Anda.

untuk halaman tempat dan acara tunggal Anda, Anda dapat membuat template kustom di tema Anda mengikuti hierarki template WordPress single-{post_type}.php, jadi dalam kasus Anda single-event.phpdan single-place.php. Anda dapat menduplikasi ini dari template single.php.

untuk daftar koneksi, kita hanya perlu sedikit kode di dalam template ini di mana pun kita ingin menampilkan daftar. ini akan pergi di templat tempat dan output acara yang terhubung:

<?php
$connected = new WP_Query( array(
    'connected_type' => 'events_to_places', 
    'connected_items' => get_queried_object()
) );

echo '<p>Related events:</p>';
echo '<ul>';
while( $connected->have_posts() ) : $connected->the_post();
    echo '<li>';
    the_title();
    echo '</li>';
endwhile;
echo '</ul>';

wp_reset_postdata();
?>
Milo
sumber
Milo, brilian - ini yang saya butuhkan, dan untuk beberapa alasan saya tidak menemukan sesuatu yang dijabarkan dengan cara ini, jadi saya menghargai waktu yang Anda ambil untuk menghubungkan ini. Bersulang!
John
1
Pada Versi 1.4 dari Post2Post, Anda harus menggunakan 'p2p_init' alih-alih 'init' untuk mendaftarkan jenis koneksi.
Stephan