一方面,我有一个现有的WordPress网站。
另一方面,一堆现有的和生成的(实际上是一些文档页面)静态HTML页面:数百......
我想将这些现有的HTML页面集成到WordPress网站中。
无需从WordPress管理控制台编辑它们。只需使它们与网站的整体外观(页眉,页脚等)保持一致,并使导航(从WordPress页面)到这些页面正常工作。
任何想法是否可能,我应该在哪里寻找一些示例/教程/现有插件。
注1:我完全控制了生成过程,因此生成的页面内容可以根据需要适应WordPress的需要。
注2:将不时重新生成整个现有的HTML页面。所以我需要相应地更新我的WordPress网站。
答案 0 :(得分:7)
如果你看一下wordpress提供的.htaccess
:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
这配置重写规则以确保url在您的wordpress站点中非常漂亮。 2条有趣的线条是:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
这些行告诉apache服务器检查所请求的文件(第1行)或文件夹(第2)是否存在。如果存在,则返回,如果不存在,则返回重写规则(博客照常显示)。 因此,您可以在网络空间的根目录(通常为www
或htdocs
)创建一个文件夹,并在其中上传生成的文件。您可以通过浏览器(http://www.yourdomain.com/yourfolder/yourfile.html)访问这些文件。
我认为这是在博客页面旁边显示静态生成内容的最简单方法。使用此功能,您必须在生成的文件中集成主题中的页眉/页脚/侧边栏。
您还可以使用@Binod应答并直接在生成的页面中使用wordpress功能。通过从* .html页面执行php代码,通过直接生成* .php文件(如果可以的话)。
答案 1 :(得分:2)
在wordpress主题中创建一个页面模板,比如将其命名为“page-external.php” 您的模板页面代码应如下所示:
<?php
/**
* Template Name: External HTML Pages
*
*/
?>
<?php get_header(); ?>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : ?>
<?php the_post(); ?>
<?php the_content(); ?>
<?php endif; ?>
<?php get_footer() ?>
此模板是一个基本的wordpress循环,它将显示您将在wp页面管理员的文本编辑器中输入的页面内容。 (如果你有任何侧边栏,小部件等,你可以改变模板...) 诀窍是,在您的页面管理员的文本编辑器中,您将添加一个带有外部页面URL参数的wordpress短代码来抓取
例如,
[externalpage href="http://www.mydomain.com/page"
]
创建一个短代码,在wordpress api中很容易记录 http://codex.wordpress.org/Shortcode_API
在你的短代码中,要获取外部页面内容,如果你愿意,可以使用get_file_content()php函数或CURL,但是这应该这样做:
function grab_externalpage_func(){
return file_get_contents('http://www.mydomain.com/page');
}
add_shortcode( 'externalpage ', 'grab_externalpage_func' );
因此,最后,添加外部现有页面就像创建新页面模板并在文本编辑器中添加短代码一样简单。而且你仍然可以从wordpress管理员将页面添加到菜单中,以及get_header()和get_ooter()与其他每个页面一样。 :)
答案 2 :(得分:1)
您可以在.htaccess文件中使用php_flag并使用PHP内置的自动附加/前置设置:
php_value auto_prepend_file "docs_header.php"
php_value auto_append_file "docs_footer.php"
答案 3 :(得分:0)
答案 4 :(得分:0)
这是一个选项:
从HTML运行PHP:http://php.about.com/od/advancedphp/p/html_php.htm
然后在HTML文件的开头:
<?php global $wp, $wp_query, $wp_the_query, $wp_rewrite, $wp_did_header; //to initialize WP environment
require('<path to wp-load.php>' . 'wp-load.php'); ?>
然后,您可以在HTML文件的适当位置使用以下WP功能:
顶部:http://codex.wordpress.org/Function_Reference/get_header
对于菜单:http://codex.wordpress.org/Function_Reference/wp_nav_menu
对于底部:http://codex.wordpress.org/Function_Reference/get_footer
注意:
应将HTML文件复制到与WordPress相同的域中。
未经测试。
答案 5 :(得分:0)
您拥有的其中一个选项是将页面导出到csv文件并使用“Really Simple CSV Importer”导入内容。
安装简便,安装后可在Admin - &gt;下使用。工具 - &gt;进口。它还会为您提供一个示例csv文件,它看起来像
"post_id","post_name","post_author","post_date","post_type","post_status","post_title","post_content","post_category","post_tags","custom_field"
我有一个300页的网站,它是在dotnetnuke中建立的,可以追溯到3年前的3-4年,并且很难将这个网站转移到Wordpress上。所以我所做的是写了一个C#程序,它从数据库中提取了所有的dotnetnuke内容并发出了csv文件。我把它们分成了大约50个。
我们需要做的唯一额外工作是生成csv文件。此外,您可能需要首先在测试安装上尝试此操作,然后最终确保您对结果感到满意,您可能需要在生产时运行它。
在我的情况下,我还必须编辑HTML&amp;类别,因为我以前没有正确设置它们。但是如果你有点小心并计划你的任务,你可以节省很多工作。