I want to run wp_query on a separate php file for

2019-02-10 06:26发布

For example:

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

The code above is on its own php file ready to be called by the main wordpress page, however I get an error saying wp_query class not found. I'm assuming it's because I am not using the header.html which probably has a bunch of includes. What do I need for that page to utilize the wp_query class?

标签: php wordpress
4条回答
\"骚年 ilove
2楼-- · 2019-02-10 06:33

You have to make the page that ajax calls a template page. Make a new page in your blog and assign the template. no headers no includes.

查看更多
孤傲高冷的网名
3楼-- · 2019-02-10 06:34

This worked for me, maybe it will help someone else.

My situation is I have a js file that uses getScript. In that script i have a bunch of .load() calls to a php file. At the top I place this.

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

Change the ../ to how ever many directories your wp-load file is up.

Edit - Using WP 3.4.1

查看更多
趁早两清
4楼-- · 2019-02-10 06:35

You have to include the file that has the Wordpress functions located on the main directory of the Wordpress Installation:

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

../../../ = path to the main directory on your installation

I found a nice tutorial about this here.

查看更多
乱世女痞
5楼-- · 2019-02-10 06:59

You can turn the template engine off and then include the header.
// Include WordPress
define('WP_USE_THEMES', false);
require_once('PATHHERE/wp-blog-header.php');

查看更多
登录 后发表回答