简体   繁体   中英

PHP function not working as expected

<?php 
    function getPosts($showposts,$tags, $thumb_key="thumb_300x166", $thumb_class, $thumb_width="300", $thumb_height="166") {

        $temp = $wp_query;
        $wp_query= null;
        $wp_query = new WP_Query();
        $wp_query->query('tag=$tags&showposts=$showposts');

        while ($wp_query->have_posts()) { 

            $wp_query->the_post();

            echo '<div class="entry"><div class="left">';

                if ( function_exists( 'get_the_image' ) ) {
                    $defaults = array(
                        'custom_key' => array( '$thumb_key' ),
                        'image_class' => '$thumb_class',
                        'image_scan' => true,
                        'width' => '$thumb_width',
                        'height' => '$thumb_height' 
                        );
                    get_the_image($defaults); // thumbnail
                } // end if

            echo '</div>
                  <div class="right">
                  <h3><a href="'.the_permalink().'">'.the_title().'</a></h3>'
                  .the_excerpt().'</div></div>';

        } // end while
    }
    getPosts($showposts=5,$tags="news",$thumb_class="review-thumb");
?>

I don't understand why this wordpress query function isn't working. I doesn't return/print anything at all.

I have never used Wordpress, but I see one problem that might be the cause of this.

Which is that if you use single quotes, such as on the following line:

$wp_query->query('tag=$tags&showposts=$showposts');

$tags and $showposts are not processed and are inserted into the string literally. If you want your string to contain the values of $tags and $showposts , use double quotes, like this:

$wp_query->query("tag=$tags&showposts=$showposts");

The same goes for the array passed to get_the_image .

: Additionaly, your function call looks weird. :另外,您的函数调用看起来很奇怪。 You're using syntax similar to when you're providing default values for arguments, but a regular function call will look something like this:

getPosts(5, "news", "review-thumb");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM