Tôi đã đăng câu hỏi cách đây vài ngày về cách Scroll to Single Post trong mẫu Wordpress tùy chỉnh mà tôi đang phát triển. Những gì tôi cần trong vỏ hạt là tải một bài đăng duy nhất vào một DIV được xác định khi một liên kết cụ thể được nhấp và sau đó cuộn xuống DIV đó để giữ nội dung mới tải. Xem xét bản chất nội dung động của Wordpress hoặc của bất kỳ CMS nào khác, URL của liên kết đó không thể là một liên kết tuyệt đối.Tải nội dung bài Wordpress vào DIV bằng cách sử dụng AJAX
Thật không may, không có bất kỳ câu trả lời cụ thể nào vào thời điểm đó, vì vậy tôi quyết định tìm hiểu thêm một chút. Và vì vấn đề chính là tải nội dung theo cách động, tôi quyết định phóng to cách tôi có thể thực hiện với AJAX trên Wordpress:
Cho đến nay, tôi đã có một ý tưởng nhỏ từ một bài đăng tuyệt vời (Loading WordPress posts with Ajax and jQuery) của Emanuele Feronato. Về cơ bản, anh ta lưu trữ ID bài đăng trong thuộc tính rel của liên kết có thể nhấp và sau đó gọi nó. Vâng, có một vài bước khác để thực hiện công việc này, nhưng lý do tôi chỉ đề cập đến ID bài đăng ngay bây giờ là vì có vẻ như đó là phần duy nhất của phương trình không đúng; ID bài đăng tải vào thuộc tính rel của liên kết nhưng không tải được vào hàm .load.
Chỉ cần để cung cấp cho bạn một ý tưởng tốt hơn về những gì tôi đã nhận được trong đánh dấu của tôi cho đến nay:
THE AJAX/jQuery trong header.php
$(document).ready(function(){
$.ajaxSetup({cache:false});
$(".trick").click(function(){
var post_id = $(this).attr("rel");
$("#single-home-container").html("loading...");
$("#single-home-container").load("http://<?php echo $_SERVER[HTTP_HOST]; ?>/single-home/",{id:post_id});
return false;
});
});
index.php
<?php get_header();?>
<!--home-->
<div id="home">
<!--home-bg-->
<img class="home-bg" src="<?php bloginfo('template_url');?>/images/home-bg.jpg" />
<!--home-bg-->
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<a class="trick" rel="<?php the_ID(); ?>" href="<?php the_permalink();?>">
<div class="box element col<?php echo rand(2,4); ?>" id="<?php $category = get_the_category(); echo $category[0]->cat_name; ?>">
<?php the_post_thumbnail(); ?>
<span class="title"><?php the_title(); ?></span>
<span class="ex"><?php the_excerpt(); ?></span>
</div>
</a>
<?php endwhile; endif; ?>
</div>
<!--home-->
<div id="single-home-container"></div>
SI NGLE-HOME.PHP (đây là một mẫu CUSTOM)
<?php
/*
Template Name: single-home
*/
?>
<?php
$post = get_post($_POST['id']);
?>
<!--single-home-->
<div id="single-home post-<?php the_ID(); ?>">
<!--single-home-bg-->
<div class="single-home-bg">
</div>
<!--single-home-bg-->
<?php while (have_posts()) : the_post(); ?>
<!--sh-image-->
<div class="sh-image">
<?php the_post_thumbnail(); ?>
</div>
<!--sh-image-->
<!--sh-post-->
<div class="sh-post">
<!--sh-cat-date-->
<div class="sh-cat-date">
<?php
$category = get_the_category();
echo $category[0]->cat_name;
?>
- <?php the_time('l, F jS, Y') ?>
</div>
<!--sh-cat-date-->
<!--sh-title-->
<div class="sh-title">
<?php the_title();?>
</div>
<!--sh-title-->
<!--sh-excerpt-->
<div class="sh-excerpt">
<?php the_excerpt();?>
</div>
<!--sh-excerpt-->
<!--sh-content-->
<div class="sh-content">
<?php the_content();?>
</div>
<!--sh-content-->
</div>
<!--sh-post-->
<?php endwhile;?>
<div class="clearfix"></div>
</div>
<!--single-home-->
Chỉ cần cho các hồ sơ: Khi bài ID không tải, tôi đã cố gắng cài đặt mà chủ đề Kubrick đặc biệt được sử dụng trong bản demo Emanuele Feronato và đưa ra những thay đổi cần thiết theo hướng dẫn của mình nhưng không có gì làm việc.
Có ai có bất kỳ ý tưởng gì đang xảy ra hoặc nếu có cách nào khác để tự động tải ID bài đăng vào hàm .load?
Có một phương pháp ưa thích sử dụng chức năng tích hợp WP ajax - bạn có thể xem tại đây: [5 mẹo sử dụng AJAX trong WordPress] (http://www.garyc40.com/2010/03/5-tips-for-using-ajax-in-wordpress /) –
[Tôi đã viết một hướng dẫn đầy đủ về cách để có được AJAX làm việc trong Wordpress ở đây.] (Http://stackoverflow.com/a/26950030/1922144) – davidcondrey