2つの投稿タイプのリンク


8

よろしくお願いします。

私はいくつかの検索を実行しましたが、この質問は「投稿2投稿」プラグインを参照して数回回答されていますが、そのドキュメントは非常に「コーダー中心」です-私は自分のことを快適に得ることができます手は汚いが、私はそこで入手可能なものよりも優れたステップバイステップの文書を必要とする。:)

ここに私が必要なものがあります。私はgPressを使用して、カスタム投稿タイプを使用して「場所」を生成しています。これは驚くほどうまく機能しています。プレイスに「イベント」を追加できるようにする必要があります。カスタムの投稿タイプを使用してすべてのイベントの詳細をキャプチャできますが、特定の場所にイベントをアタッチしたり、その逆もできるようにしたいと思います。誰かがイベントの投稿を表示している場合、イベントに関連するプレイス情報を取得する簡単な方法もあります。

どんな提案も歓迎します!

回答:


9

Scribuの 投稿から投稿への投稿は、素晴らしくシンプルなプラグインです。きっとあなたがそれを機能させる手助けをすることができると思います。基本的な使い方は非常に簡単です。

カスタム投稿タイプの名前が'place'and 'event'であるとすると、次のコードはテーマのfunctions.phpファイルに挿入されます。

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

これにより、カスタムの編集後の画面で使用可能な関係を割り当てるメタボックスが作成されます。

あなたの単一の場所やイベントのページについて、あなたはWordPressの以下のテーマでカスタムテンプレートを作成することができ、テンプレート階層 single-{post_type}.phpので、あなたの場合には、single-event.phpsingle-place.php。これらは、single.phpテンプレートから複製できます。

接続をリストするには、リストを出力する場所にこれらのテンプレート内のコードが少し必要です。これはプレイステンプレートに入れられ、接続されたイベントを出力します。

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

ミロ、素晴らしい-これは私が必要とするもので、何らかの理由でこのように綴られたものをまったく見つけられなかったので、これを接続するのにかかった時間に感謝します。乾杯!
ジョン

1
Post2Postのバージョン1.4以降、接続タイプを登録するには、「init」の代わりに「p2p_init」を使用する必要があります。
ステファン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.