2011-01-09 23 views
5

例如:我想在一个单独的PHP文件运行wp_query一个Ajax调用

<?php $numposts = $_POST['showposts']; ?> 


<?php $home_query_bottom = new WP_Query("cat=&showposts=$num_posts&offset=5"); $b = 0; ?> 
<ul class="thumbs"> 
    <?php while ($home_query_bottom->have_posts()) : $home_query_bottom->the_post(); 
     $do_not_duplicate = $post->ID; $b++; ?> 

     <li class="post-<?php the_ID(); ?> thumb"><?php get_the_image(array('custom_key' => array('thumbnail'), 'default_size' => 'thumbnail', 'width' => '160', 'height' => '160')); ?></li> 
    <?php endwhile; wp_reset_query(); $b = 0; ?> 
</ul> 

上面的代码是对自己的PHP文件准备由主WordPress的页面调用,但是我得到一个错误说wp_query类未找到。我假设这是因为我没有使用header.html,它可能有一堆包含。那个页面需要什么来利用wp_query类?

回答

3

您必须制作ajax调用模板页面的页面。 在您的博客中创建一个新页面并分配模板。 没有标题不包含。

7

您可以关闭模​​板引擎,然后包含标题。
// Include WordPress
define('WP_USE_THEMES', false);
require_once('PATHHERE/wp-blog-header.php');

+0

包括我的标题?但这是一个阿贾克斯电话,我想加载到我的主页 – Adam 2011-01-09 20:48:05

2

这对我有效,也许它会帮助别人。

我的情况是我有一个使用getScript的js文件。在那个脚本中,我有一堆.load()调用到一个php文件。在顶部我放置这个。

if (file_exists("../../../wp-load.php")) 
    { 
    require_once("../../../wp-load.php"); 
    } 

../更改为您的wp-load文件的多少个目录。

编辑 - 使用WP 3.4.1

5

你必须包括有位于WordPress安装的主目录下的WordPress的功能文件:

define('WP_USE_THEMES', false); 
require_once('../../../wp-load.php'); 

../../。 ./ =安装到主目录的路径

我发现了关于here的一个很好的教程。

相关问题