
無限スクロールの実行にAjax Load Moreプラグインを使用しています。
今回、多言語化対応をするためBogoというプラグインを使って日本語で作ったサイトの英語サイトを作成しています。
WP_queryの条件にsuppress_filters=>falseを追加することで、現在指定しているlocateのみのデータを抽出することができるのですが、抽出条件は管理画面のプラグイン設定に指定されているものだけしか追加できないため指定したlocateに関係なくすべてのデータが抽出されてしまっています。
何かお分かりになる方がいらっしゃったらご助言よろしくお願いいたします。
[ajax_load_more id="aaa_list" container_type="div" css_classes=".aaa_container" post_type="aaa" posts_per_page="18" taxonomy="areatype" taxonomy_terms="'.$areatype. '" taxonomy_operator="IN" orderby="title" offset="18"]
// ALM Core Filter Hook
フックが用意されているのでadd_filterしてみましたが正常に動作しません。
カスタマイズをしたことがないので記述方法があっているのかもわからず困っております。
使い方自体間違っているような気もしています。
* alm_query_args_{id} * * ALM Core Filter Hook * * @return $args; */ $args = apply_filters('alm_query_args_'.$id, $args, $post_id); // ALM Core Filter Hook
/* Ajax Load More 言語指定の設定を追加 */ function my_aaa_list($args, $id){ // $id = Current post/page ID where the ALM shortcode is found // ALM Shortcode // [ajax_load_more id="movie_listing" posts_per_page="6" button_label="More Movies"] // 'movie_listing' is the value of the 'id' parameter in the shortcode. $args = Array( 'post_type' => 'aaa', 'posts_per_page' => 18, 'suppress_filters' => false, 'meta_value' => true, 'tax_query' => array( array( 'taxonomy' => 'areatype', 'field' => 'slug', 'terms' => $areatype, ) ), ); return $args; } add_filter( 'alm_query_args_aaa_list', 'my_aaa_list', 10, 2);
何かお分かりになる方がいらっしゃったらご助言よろしくお願いいたします。
ショートコードのパラメータに
custom_args="" というのがあって
受け取り側で
分解してarg[]に変換する処理をしているようでした。
なので、custom_args="suppress_filters:false;"を追加してみましたが
// Custom Args var_dump($custom_args); if(!empty($custom_args)){ $custom_args_array = explode(";",$custom_args); // Split the $custom_args at ',' foreach($custom_args_array as $argument){ // Loop each $argument $argument = preg_replace('/\s+/', '', $argument); // Remove all whitespace $argument = explode(":",$argument); // Split the $argument at ':' $argument_arr = explode(",", $argument[1]); // explode $argument[1] at ',' if(sizeof($argument_arr) > 1){ $args[$argument[0]] = $argument_arr; }else{ $args[$argument[0]] = $argument[1]; } } }
ブラウザ側のデバッガをみると
SyntaxError: Unexpected token s in JSON at position 0
シンタックスエラーが出ています。
回答2件
あなたの回答
tips
プレビュー