我想在一个单独的php文件上运行wp_query以进行a​​jax调用

时间:2011-01-09 20:22:42

标签: php wordpress

例如:

<?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类?

4 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:6)

您必须在Wordpress安装的主目录中包含具有Wordpress功能的文件:

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

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

我找到了一个很好的关于这个here的教程。

答案 2 :(得分:3)

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

答案 3 :(得分:2)

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

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

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

../更改为wp-load文件启动的目录。

编辑 - 使用WP 3.4.1