2

需要创建一个类似 WordPress 的have_posts()模板函数的方法。

方法是这样的:

class posts{
    public function have_posts(){
        $query = 'SELECT * FROM posts';
        $result = mysql_query($query);
        return mysql_fetch_array($result);
    }
}

使用模板中的类(主题):

$posts = new posts;
while($row = $posts->have_posts()){
    echo $row['post_title'];
}

但我正在努力实现以下目标:

<?php while(have_posts()){ ?>
<h1><?php post_title(); ?></h1>
<?php } ?>

也欢迎替代方案和建议:)

4

1 回答 1

0

对于您的具体问题,以下应该有效

class posts
{
    private $_result;
    private $_current;

    public function __construct()
    {
        $query = 'SELECT * FROM posts';
        $this->_result = mysql_query($query);
    }

    public function have_posts()
    {
        return ($this->_current = mysql_fetch_array($this->_result));
    }

    public function post_title()
    {
        echo $this->_current['title'];
    }
} 

<?php $posts = new posts(); ?>

<?php while($posts->have_posts()){ ?>
    <h1><?php $posts->post_title(); ?></h1>
<?php } ?>
于 2012-12-15T14:34:33.467 回答