使用Simple DOM Parser将Wordpress帖子提取到html

时间:2013-12-01 16:02:02

标签: php wordpress simple-html-dom

用于将Wordpress帖子中的字符串解析为HTML。我使用Simple DOM Parser。使用以下代码,我收到致命错误:Call to a member function find() on a non-object。有人可以伸出援手吗?

提前致谢

<?php
    require ('simple_html_dom.php');

    /*
    Template Name: Practice
    */


    $query = new WP_Query( 'category_name=arthouse' ); 
            if ($query->have_posts()) {
                    while ( $query->have_posts() ) {
                        $query->the_post();

                        $page = the_content().' ';
                        $html = str_get_html($page). " ";

                            foreach($html->find('div[class=post]') as $element) {
                                echo $element->src . '<br>';
                        }
                    }
                }else{
                    echo 'Sorry, no posts matched your criteria.';
                }

    ?>

1 个答案:

答案 0 :(得分:0)

首先,我不明白,为什么您在这里使用DOM parser,如果您愿意使用div[class=post]simple dom parser内部获取所有链接,那么您应该写这样的东西

foreach($html->find('div.post a') as $a){ // or div[class=post] a
    echo $a->href.'<br />'; // for link, i.e. http://somedomain.com/somepage.php
    // or
    echo $a; // to print out the link as it's
}

这可能不适合你的html布局,但它可能会给你一个想法,也是check this answer。如果您尝试此代码(从我的网站获取所有帖子标题/链接),您可能会有一个想法(不允许废弃我的网站)

$html = file_get_html('http://heera.it');
foreach($html->find('section.post-body h3 a') as $a){
    echo $a.'<br />';
}

这个(section.post-body h3 a)用于获取h3标记内section标记内的所有链接,其中包含类post-body。 再次确认,为什么使用Dom parser?我想,你不需要使用解析器,也许你做错了,我想是的。