我正在尝试制作一个小的侧边栏小部件。我知道这应该用 AJAX 来完成,最终会的。不过现在,为了优雅地降级,我想在没有 javascript 的情况下保持它的功能。
手头的任务:(注意我使用的是wordpress)
我有一个链接,它捕获看起来像这样的年份和月份。
<?php $date = "$year-$month";
$nonce = wp_create_nonce("dynamic_date_loop_nonce");
$link = admin_url('admin-ajax.php?&action=dynamic_date_loop&my_date='.$date.'&nonce='.$nonce);
echo '<li><a class="date_sidebar" href="'.$link.'">'; ?><?php echo date( 'F', mktime(0, 0, 0, $month) );?></a></li>
<?php } ?>
然后在我的functions.php中,我抓取$date字符串并将其分解成一个数组,如下所示:
$date = $_REQUEST['my_date'];
然后,在一个名为 loopHandler.php 的单独 PHP 中,我有一个使用 functions.php 中的 2 个变量的标准循环:
<?php
$split = explode("-",$date);
$year = $split[0];
$month = $split[1];
$args = array( 'year' => $year, 'monthnum' => $month );
$loop = new WP_Query($args);
if ($loop->have_posts()) {
while ($loop->have_posts()){
the_post();
get_template_part( 'content', get_post_format() );
}
}
wp_reset_query();
?>
我的问题是:
1) 如何将我的 $date 变量从 functions.php 转移到 loopHandler.php?
2) 一旦 loopHandler.php 处理了信息,我如何回显循环,或者将文件加载到我想要的页面/div 中?
此小部件的目标是当用户单击加载该月帖子的日期时。现在我知道它是否必须刷新页面,但暂时没关系。
帮助表示赞赏。