web-dev-qa-db-fra.com

Comment créer une programmation avec [Plugin: Posts 2 Posts] sur cpt publish?

Comment puis-je créer par programme une connexion entre un type de publication personnalisé, cpt (avec son identifiant connu) à un autre sur cpt lors de la publication?

J'utilise la méthode de publication frontale de de VoodooPress pour publier un type de message appelé post-type-A . Un champ de saisie du formulaire post-type-A est le numéro d’inventaire public qui, grâce à un amour de wp_query, me donne l’identifiant de la publication post-type-B que je souhaite créer une relation avec.

Je sais que je peux utiliser this function pour créer une connexion à sens unique de post-type-A à post- tapez B en utilisant un champ personnalisé.

add_action('publish_page', 'add_custom_field_automatically');
add_action('publish_post', 'add_custom_field_automatically');
function add_custom_field_automatically($post_ID) {
    global $wpdb;
    if(!wp_is_post_revision($post_ID)) {
        add_post_meta($post_ID, 'field-name', 'custom value', true);
    }
}

Mais comment puis-je créer une connexion par programme en utilisant le Posts 2 Posts plugin de @ Scribu? Une relation à double sens réduirait beaucoup de problèmes et de temps de programmation. :)

Pour référence, l'extrait ci-dessous est le connect api reference du plugin ...

/**
 * Connect a post to another one
 *
 * @param int $post_a The first end of the connection
 * @param int $post_b The second end of the connection
 * @param bool $bydirectional Wether the connection should be bydirectional
 */
function p2p_connect( $post_a, $post_b, $bydirectional = false ) {
        add_post_meta( $post_a, P2P_META_KEY, $post_b );

        if ( $bydirectional )
                add_post_meta( $post_b, P2P_META_KEY, $post_a );
}
3
torinagrippa

Il suffit d'appeler p2p_connect( $id_of_post_type_a, $id_of_post_type_b ); dans le code de traitement du formulaire.

6
scribu