Ajax ile yapılıyor hocam. Mesala Twenty Fourteen temasında, sidebar'dan bir linke tıklanınca sayfa yenilenmeden içeriğin değişmesi için;
Bu şekilde istediğiniz kısımın ID'sini bulun, çünkü; sadece o eleman'ın içindeki linklere tıklanınca gerçekleşmesini istiyoruz.
Daha sonra içeriğin bulunduğu, yani değişen kısımı bulun;
Şimdi elimizde 2 adet ID var.
#primary-sidebar içinden bir linke tıklanınca
#content kısmı değişecek. Kodlara geçelim;
footer.php'ye <?php wp_footer(); ?>'nın hemen üstüne ekleyin;
<div id="yukleniyor" style="display:none;position:fixed;left:0;top:0;width:100%;height:100%;z-index:9999;background:rgba(0,0,0,.6);color:#fff;font-size:26px;text-align:center;padding-top:250px;">Yükleniyor...</div>
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script>
$('#primary-sidebar').find('a').click(function(){ //#primary-sidebar içindeki bir a tag'ına tıklanınca yakaladık
var link = $(this).attr('href'); //a etiketinin gideceği link'ı aldık
history.pushState(null, null, link); // adres barındaki linkin değişmesini sağladık
$.icerikDegistir(link); // aldığımız link değeriyle fonksiyonumuzu çağırdık
return false; // a linkinin belirtilen adrese gitmesini engellemek için
});
$.icerikDegistir = function(link){ // fonksiyonumuz link parametresi alıyor
$('#yukleniyor').fadeIn(); // yükleniyor div'imizi gösterdik
var yeni_icerik = link + ' #content > *'; // link parametresinin sonuna #content > * ekliyor, çünkü sadece #content'in içeriğini almak istiyoruz
$('#content').load(yeni_icerik, function(){
$('#yukleniyor').fadeOut(); // yükleniyor div'imizi gizledik, çünkü yüklenme işlemi tamamlandı
}); // belirttiğimiz içeriği #content'in içine yükledik
}
window.onpopstate = function(event) {// tarayıcıdan geri butonuna basıldığında içeriğin değişmesi için
$.icerikDegistir(document.location);
};
</script>