ええと、私は何時間も何時間もどこでも探していました、そしてこれをする方法はたくさんあるようです、私はこれまでAjaxを使ったことがなく、havascriptの知識がほとんどないので、それは私には難しすぎます。
フロントページ(インデックス)またはワードプレスにループがあり、フィルター、さまざまなカテゴリのドロップダウンメニューが必要です。クリックすると、同じ画面に表示される投稿はそのカテゴリの投稿のみになります。ループをajaxで更新する必要があるので、フィルターを使用している間、ページ全体がそのまま残ります。
これは私が私のインデックスファイルに持っているものです:
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("jquery", "1.2.6")</script>
<script type="text/javascript">
$(function(){
$('#main_cat').change(function(){
var $mainCat=$('#main_cat').val();
$("#sub_cat").empty();
// call ajax
$.ajax({
url:"<?php bloginfo('wpurl'); ?>/wp-admin/admin-ajax.php",
type:'POST',
data:'action=my_special_ajax_call&main_catid=' + $mainCat,
success:function(results)
{
// alert(results);
$('#sub_cat *').fadeOut(500);
$('#sub_cat + p').fadeOut(500);
$("#sub_cat").append(results);
$('#sub_cat').load('http://localhost:8888/public_html/wp-content/themes/twentyten-child/templateloop.php');
$('#sub_cat + p').fadeIn(1);
}
});
}
);
});
カテゴリのドロップダウンは次のようになります。
<?php
wp_dropdown_categories('show_count=0&selected=-1&hierarchical=1&depth=1&hide_empty=0&exclude=1&show_option_none=Main Categories&name=main_cat');
?>
したがって、ドロップダウンは機能し、1つのカテゴリ(wp_dropdown_categoriesから取得)のみをフィルタリングするクエリを使用してwpテンプレートファイルをajaxロードすることになっています。また、templateloop.phpファイルにダミーテキストがある場合はロードは正常に機能しますが、wpクエリがある場合は何も起こりません。ループが配置され、テンプレートファイルによって切り替えられるはずだった#sub_cat divは、すべての投稿リストとともに消え、ページの上半分だけが残ります(#sub_cat divがあった場所まで) )。
非常に多くの試行錯誤があり、テンプレートファイル、インデックスファイル、関数でクエリ呼び出しを試してみましたが、結果が得られないようです。
私のfunctions.phpファイルでiveはこれを手に入れました:
function implement_ajax() {
if(isset($_POST['main_catid']))
{
echo '<?php $paged = (get_query_var("paged")) ? get_query_var("paged") : 1; query_posts("cat='.$_GET['maincatid'].'&paged=$paged"); ?>';
die();
} // end if
}
add_action('wp_ajax_my_special_ajax_call', 'implement_ajax');
add_action('wp_ajax_nopriv_my_special_ajax_call', 'implement_ajax');//for users that are not logged in.
そして、このすべての前にインデックスファイルで使用していたクエリ行は次のとおりです。
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("cat=1,2,3,4,5&paged=$paged"); ?>
wp_queryを使用してみましたが、どこにも行きません。本当にガイダンスが必要です。どんな助けでも大歓迎です。ありがとうございました。