web-dev-qa-db-ja.com

カスタム分類/投稿タイプのGoogle Mapショートコード

WPスタック交換者全員に電話してください。

私は現在、開発中のサイトでAlain GonzalesのGoogle Map Shortcodeプラグインを使用していますが、うまく機能しています。

wordpress.orgのGoogle Map Shortcodeプラグイン

最近、私はサイトにカスタム投稿タイプ( "ホテル"と呼ばれる)を追加し、これと共に使用する2つの新しいカスタム分類( "都市"と "地域")を作成しました。上記のプラグインを使用して、CPT /カスタム分類法を使用する投稿のマップポイントを表示したいのですが、これまでのところ、問題のポイントを追加することはできますが、関連する広告に適切に表示されませんテーマテンプレートファイル - 分類法の最初の投稿のみが表示され、それ以外は表示されません。

プラグインファイルには、次の行があります。

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

これは、カテゴリ内の投稿をクエリし、それらに関連付けられているマップポイントを印刷するために使用されます。もちろん、問題は、カスタム分類法は「伝統的な」カテゴリではないため、それらではうまく機能しないことです。

分類内の各投稿から得点を取得するために分類法を正しく照会する方法を考えてみませんか。

いつものように、どんな助けでも感謝されるでしょう!

1
Alex Stanhope

この記事を復活させて申し訳ありませんが、それはフロントページにあり、私はそれが非常に古すぎることに気付きました...これがこの問題に関する私の見解です:

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

基本的に、「都市」または「地域」の分類法のページにいるときにショートコード属性をフィルタリングし、「cat」パラメータにカスタム値を追加します。 WP_Query::get_posts()によって起動されたpre_get_postsアクションでは、カスタム値がcategory__inパラメーターに存在するかどうかをチェックします - 存在する場合は、category__inパラメーターを設定解除し、現在の分類法にtax_queryパラメーターを追加します。

このリンクをクリックするだけで、カスタム分類をカスタム分類に追加することができます。作成された新しいメタボックスにHTMLコードを追加し、そこにGoogleマップコードを挿入します。テキストを入力してカスタム分類法のために保存します。 http://pippinsplugins.com/adding-custom-meta-fields-to-taxonomies/

カスタム投稿タイプにGoogleマップを追加するための別のリンク。 http://www.billerickson.net/integrate-google-maps-wordpress/ ありがとう

0
ashraf