gpt4 book ai didi

javascript - 如何使用 Ajax 显示 WordPress 查询

转载 作者:行者123 更新时间:2023-12-03 08:26:53 24 4
gpt4 key购买 nike

尝试使用 jQuery 显示内容给我带来了一些麻烦。我创建了三个按钮,单击时它们会从我的服务器上的 php 文件加载数据。一切正常,除了当我尝试发送加载 WordPress 帖子的请求时。出现以下 fatal error :调用未定义的函数 get_posts()。我从https://perishablepress.com/slide-fade-content/学会了如何做到这一点.

对于脚本,我有这个:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript" src="http://example.com/slide-fade-content/jquery.colorfade.min.js"></script>

<script type="text/javascript">
// slide & fade content @ http://m0n.co/r
$(document).ready(function() {
$('.more').on('click', function(e) {
e.preventDefault();
var href = $(this).attr('href');
if ($('#ajax').is(':visible')) {
$('#ajax').css({ display:'block' }).animate({ height:'0' }).empty();
}
$('#ajax').css({ display:'block' }).animate({ height:'200px' },function() {
$('#ajax').html('<img id="loader" src="loader.gif">');
$('#loader').css({ border:'none', position:'relative', top:'24px', left:'48px', boxShadow:'none' });
$('#ajax').load('slide-fade-content.php ' + href, function() {
$('#ajax').hide().fadeIn('slow').colorFade({ 'fadeColor': 'rgb(253,253,175)' });
});
});
});
});
</script>

这是我的三个按钮:

<ul>
<li><a class="more" href="#first-item">First Item</a></li>
<li><a class="more" href="#second-item">Second Item</a></li>
<li><a class="more" href="#third-item">Third Item</a></li>
</ul>

这是内容出现的地方

<div id="ajax"></div>

这就是内容

<div id="load">
<div id="first-item">
<?php
$args = array(
'posts_per_page' => 5,
'offset'=> 0,
'category' => '2,3,4',
'orderby' => 'meta_value_num',
'meta_key' => 'views',
'order' => 'DESC',
'suppress_filters' => true,
'date_query' => array(
'after' => date("jS F, Y", strtotime('-24 hours'))
)
);

$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
<div>
<li>

<ul><?php $categories = get_the_category(); $separator = ' '; $output = '';
if($categories){
foreach($categories as $category) {
$output .= '<a href="'.get_category_link( $category->term_id ).'" title="' . esc_attr( sprintf( __( "View all in %s" ), $category->name ) ) . '">'.$category->cat_name.'</a>'.$separator;
}
echo trim($output, $separator) ;
}
?>
</ul>

<a href="<?php the_permalink(); ?>"><?php echo get_the_post_thumbnail( $post_id, array(300, 160), $attr ); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?>
</li>
</div>

<?php endforeach;
wp_reset_postdata();?>

</div>

<div id="second-item">
Test2

</div>

<div id="third-item">
Test3
</div>

</div>

我想我必须定义一个函数,但经过几个小时的反复试验我迷失了。我不知道如何做到这一点或在哪里定义它。

最佳答案

听起来您的脚本 slip-fade-content.php 并未实例化 WordPress,因此您无法调用 WordPress 函数 get_posts() 并且您会收到对未定义函数的错误调用。

如果您包含 WordPress 配置文件,您将能够调用 WordPress API。

require_once [path to WordPress install].'/wp-config.php';

关于javascript - 如何使用 Ajax 显示 WordPress 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33510704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com