WordPress建站:如何提取其他网站文章正文HTML内容(非iframe方式)
嘿,作为刚接触编程的WordPress新手,你这个需求真的很常见,完全不用慌!我给你两种简单的解决方案,一种零代码,一种稍微碰点代码但更灵活,都适合新手操作:
方法1:可视化插件(零代码,上手最快)
这是最适合新手的方式,不用写任何代码,靠插件的可视化操作就能搞定:
- 第一步:在WordPress后台的「插件 > 添加新插件」里搜索WP Web Scraper,安装并激活它
- 第二步:创建抓取规则
- 进入插件的「Add New Scraper」页面,输入你要抓取的新闻页面URL,点击「Load Page」
- 页面加载完成后,直接用鼠标点击你想要提取的正文部分——插件会自动识别这个区域对应的CSS选择器(不用管这是什么,跟着点就行)
- 给这个规则起个好记的名字(比如“科技新闻正文”),然后保存
- 第三步:在页面里调用抓取内容
- 打开你要展示内容的WordPress页面,插入插件生成的短代码(比如
[wp_web_scraper id="123"],其中id是你保存规则时的编号)
- 打开你要展示内容的WordPress页面,插入插件生成的短代码(比如
- 第四步:自定义样式
- 抓取来的内容默认样式可能和你的网站不搭,你可以去「外观 > 自定义 > 额外CSS」里写点简单样式调整,比如:
/* 调整正文段落样式 */ .wp-web-scraper-content p { font-size: 16px; line-height: 1.6; color: #333; margin-bottom: 15px; } /* 调整正文标题样式 */ .wp-web-scraper-content h2 { font-size: 22px; color: #222; margin-top: 25px; }
- 抓取来的内容默认样式可能和你的网站不搭,你可以去「外观 > 自定义 > 额外CSS」里写点简单样式调整,比如:
方法2:自定义短代码(稍微碰点代码,更灵活)
如果插件满足不了你的特殊需求,或者你想试试简单的代码玩法,可以用这个方法,都是复制粘贴的内容,不用怕:
- 第一步:先安装Simple HTML DOM Parser插件(后台搜索就能找到,用来帮我们解析网页内容)
- 第二步:添加自定义短代码
- 为了避免主题更新丢失代码,推荐用「Code Snippets」插件来添加代码(后台搜索安装就行),或者如果你会用子主题,也可以编辑子主题的
functions.php - 复制下面的代码粘贴进去(Code Snippets里新建一个片段,粘贴后激活):
function fetch_news_content($atts) { // 从短代码里获取URL和正文选择器参数 $atts = shortcode_atts( array( 'url' => '', 'selector' => '.article-content' // 默认选择器,可替换 ), $atts ); // 如果没传URL,返回提示 if(empty($atts['url'])) return '请填写要抓取的新闻页面URL'; // 调用Simple HTML DOM解析页面 require_once ABSPATH . 'wp-content/plugins/simple-html-dom-parser/simple_html_dom.php'; $html = file_get_html($atts['url']); if(!$html) return '无法加载目标页面,请检查URL或对方网站是否允许抓取'; // 提取指定区域的内容 $content = $html->find($atts['selector'], 0); if(!$content) return '找不到指定的正文区域,请检查选择器是否正确'; // 返回包裹好的内容,方便加样式 return '<div class="external-news-content">' . $content->innertext . '</div>'; } add_shortcode('fetch_news', 'fetch_news_content');
- 为了避免主题更新丢失代码,推荐用「Code Snippets」插件来添加代码(后台搜索安装就行),或者如果你会用子主题,也可以编辑子主题的
- 第三步:在页面里调用短代码
- 编辑你的页面,插入类似这样的短代码:
[fetch_news url="https://example.com/news/sample-article" selector=".post-main-content"] - 这里的
selector需要替换成目标网站正文对应的CSS选择器——怎么找?打开目标新闻页面,右键点击正文,选「检查」,在弹出的开发者工具里找到包裹正文的那个元素,复制它的类名或ID(比如.article-body或者#content)
- 编辑你的页面,插入类似这样的短代码:
- 第四步:自定义样式
- 同样去「外观 > 自定义 > 额外CSS」里写样式,比如:
.external-news-content { padding: 20px; background-color: #f8f8f8; border-radius: 8px; margin: 20px 0; } .external-news-content p { font-size: 15px; line-height: 1.7; color: #444; }
- 同样去「外观 > 自定义 > 额外CSS」里写样式,比如:
重要提醒!
- 版权问题:抓取其他网站内容前,一定要先看对方的
robots.txt文件(比如https://example.com/robots.txt)和版权声明,确保对方允许抓取,不然可能会有法律风险! - 加载速度:抓取外部内容会拖慢页面加载,建议安装缓存插件(比如WP Super Cache)把抓取的内容缓存起来
- 反爬限制:有些网站会阻止外部抓取,如果遇到无法加载的情况,可以试试换个插件,或者在代码里添加自定义User-Agent(如果用方法2的话,查一下相关教程,操作很简单)
内容的提问来源于stack exchange,提问作者AjiibRubf
相关产品推荐
相关产品推荐

