使用Simple DOM Parser将Wordpress文章提取为html


Using Simple DOM Parser to extract Wordpress post to html

用于将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.';
                }
    ?>

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

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布局,但它可能会给你一个想法,也可以检查这个答案。如果你尝试这个代码(从我的网站上获取所有的帖子标题/链接),你可能会有一个想法(不允许删除我的网站)

$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标签内部获取所有链接,该标签位于类为post-bodysection标签内部。再次确认,为什么要使用Dom parser?我认为,你不需要使用解析器,也许你做错了,我认为是的。