web-dev-qa-db-fra.com

Code abrégé Google Map pour la taxonomie personnalisée/les types de publication

Appel de tous les WP Echangeurs de pile!

J'utilise actuellement le plug-in Google Map Shortcode d'Alain Gonzales sur un site que je suis en train de développer, et cela fonctionne très bien:

Plug-in Google Map Shortcode sur wordpress.org

Récemment, j'ai ajouté un type de message personnalisé (appelé "hôtels") au site et créé deux nouvelles taxonomies personnalisées à utiliser avec celui-ci ("villes" et "régions"). J'aimerais utiliser le plug-in mentionné ci-dessus pour afficher les points de carte pour les publications qui utilisent les taxonomies CPT/Custom, et jusqu'à présent, cela me permettra d'ajouter les points en question, mais ne les crache pas correctement fichier de modèle de thème - il ne montre que le premier article de la taxonomie, mais pas les autres.

Dans le fichier de plug-in, il y a cette ligne:

$ post_obj = get_posts (array ('category__in' => $ categories, 'numberposts' => - 1));

Ceci est utilisé pour interroger les publications dans une catégorie et imprimer leurs points de carte associés; Bien sûr, le problème est que, comme les taxonomies personnalisées ne sont pas des catégories "traditionnelles", cela ne fonctionne pas très bien avec elles :(

Est-ce que l’un d’entre vous peut penser à une façon dont je peux interroger correctement les taxonomies pour obtenir les points de chaque message en leur sein?

Comme toujours, toute aide serait reçue avec gratitude!

1
Alex Stanhope

Désolé de faire revivre ce message, mais il était en première page et j'ai remarqué qu'il était très vieux trop tard ... Voici mon point de vue sur ce problème:

// This will filter the shortcode attributes and will insert custom 
// value for the "cat" parameter
function filter_gmaps_shortcode_atts( $atts ) {
    // We add a custom value in the $cat parameter
    if ( is_tax( 'cities' ) ) {
        $atts['cat'] = 'filter_taxonomy_cities';
    } elseif ( is_tax( 'regions' ) ) {
        $atts['cat'] = 'filter_taxonomy_regions';
    }

    return $atts;
}
add_filter( 'gmshc_shortcode_atts', 'filter_gmaps_shortcode_atts', 10 );

// This filters the WordPress query and checks for our custom values from above
// We then modify the query to look for the proper post type and taxonomy
function filter_gmaps_get_post( &$wp_query ) {
    if ( isset( $wp_query->query_vars['category__in'] ) ) {
        $queried_obj = get_queried_object();
        if ( in_array( 'filter_taxonomy_cities', $wp_query->query_vars['category__in'] ) || in_array( 'filter_taxonomy_regions', $wp_query->query_vars['category__in'] ) ) {
            unset( $wp_query->query_vars['category__in'] );

            $wp_query->query_vars['tax_query'] = array(
                array(
                    'taxonomy' => $queried_obj->taxonomy,
                    'terms' => array( intval( $queried_obj->term_id ) ),
                    'field' => 'id'
                )
            );
            $wp_query->query_vars['post_type'] = 'hotels';
        }
    }
}
add_action( 'pre_get_posts', 'filter_gmaps_get_post', 10 );

Fondamentalement, nous filtrons les attributs de shortcode lorsque nous sommes sur une page de taxonomie "villes" ou "régions" et ajoutons une valeur personnalisée pour le paramètre "cat". Dans l'action pre_get_posts déclenchée par WP_Query::get_posts(), nous vérifions si les valeurs personnalisées sont présentes dans le paramètre category__in. Si c'est le cas, nous désactivons le paramètre category__in et ajoutons un paramètre tax_query pour la taxonomie actuelle.

1

suivez simplement ce lien, il vous guidera pour ajouter des champs personnalisés à la taxonomie personnalisée à partir de ce point, vous pourrez ajouter du code html dans la nouvelle méta-boîte créée et y insérer votre code google map. entrées de texte et les stocker pour votre taxonomie personnalisée. http://pippinsplugins.com/adding-custom-meta-fields-to-taxonomies/

un autre lien pour ajouter google map aux types de publication personnalisés. http://www.billerickson.net/integrate-google-maps-wordpress/ merci

0
ashraf