将WordPress集成到现有网站

时间:2018-11-01 作者:Ole Lasse Bjellaas

我试着阅读WordPress codex中关于将WordPress集成到现有网站的内容。

我尝试使用标题信息

<?php /* Short and sweet */ define(\'WP_USE_THEMES\', false);
require(\'./wp-blog-header.php\'); ?>
然后是测试代码

<?php // Get the last 3 posts.
 global $post; $args = array( \'posts_per_page\' => 3 ); 
$myposts = get_posts( $args ); 
foreach( $myposts as $post ) :  setup_postdata($post); ?> 
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a><br /> 
<?php endforeach; ?>
我添加了另一个代码,使页面仅适用于登录用户:

if ( ! is_user_logged_in() ) { // Display WordPress login form:
    wp_login_form($args);
此代码确实显示了登录,但当我登录时,它记不起它是否已登录,并且不会显示功能(博客帖子)。有趣的是,登录表单(由wp\\u login\\u表单调用)显示,但我无法登录。这很令人担忧,因为抄本中的信息不起作用Integrating Wordpress with Your Website

它不起作用。有人能帮我吗?我试着在WordPress论坛上发帖,但没有任何帮助

11月7日新编辑:这就是PHP文件现在的样子。这叫做lite\\u索引。php并包含wp负载,因此我相信下面的登录表单显示,bt仍然无法登录。

<?php
//define(\'WP_USE_THEMES\', false);
//require(\'lite/wp-blog-header.php\');
define(\'COOKIEPATH\', \'/\');
require(\'lite/wp-load.php\');
require(\'loggin_check.php\');
//require(dirname(__FILE__) . \'lite/wp-load.php\');
//header(\'Content-Type: text/html; charset=ISO-8859-1\');

$posts = get_posts(\'numberposts=10&order=ASC&orderby=post_title\');
foreach ($posts as $post) : setup_postdata( $post ); ?>
<?php the_date(); echo "<br />"; ?>
<?php the_title(); ?>    
<?php the_excerpt(); ?> 
<?php
endforeach;
?>
<h1>Lite v4</h1>

<?php
if ( ! is_user_logged_in() ) { // Display WordPress login form:
    wp_login_form($args);
} else {
    wp_loginout(index.php); // Display "Log Out" link.
    echo " | ";
    wp_register(\'\', \'\'); // Display "Site Admin" link.
    echo "<br />\\n";
}
?>

3 个回复
最合适的回答,由SO网友:Zeth 整理而成

我开始写一篇很长的评论,但我想我会把它作为一个解决方案来写。

如果您将所有文件混合在一个大杂烩中,那么它可能无法工作。但是如果你把WordPress放在一个子目录中,那么它就会工作(我以前就是这样做的)。

记住!!!如果您已经安装了一个工作的WordPress,并且想要移动帖子,那么您不能简单地移动文件。你必须遵循正确的程序explained here.

混合静态网站和WordPress的正确文件结构示例:

|-your-index.php
|-your-page-1.php
|-your-page-2.php
|-your-css
|  |-your-styles.css
|
|-your-js 
|  |-your-js-file.js
|
|-wp     <-- Put your entire WP-installation in a folder
   |-wp-content
   |      |-themes
   |      |-uploads
   |      |-...
   |      |-...
   |      
   |-wp-includes
   |      |-...
   |      |-...
   |
   |-wp-admin
   |      |-...
   |      |-...
   |
   |-wp-config.php
   |-wp-blog-header.php
   |-...
   |-...
这样你就可以打电话

<?php require( $_SERVER[\'document_root\'] . \'/wp/wp-blog-header.php\'); ?>
然后,您可以将自己的静态文件和WordPress安装分开并使其工作。我过去就是这样做的,这很管用。

<小时>

Flipside

我可以(通过谷歌搜索一下)看到,@Bob的建议似乎变得更受欢迎了。Here\'s an example, using wp-load. 我必须承认,我不知道两者之间有什么区别。

This solution 建议第三种方法。

但从各方面考虑。。。无论您以何种方式加载WordPress,那么我认为您当前面临的挑战是您的文件结构(如果我没有弄错的话)。WordPress需要自己的独立环境(文件夹),这样它就可以生成URL并按预期调用文件。

<小时>

Final word

但正如我在评论中所建议的那样。我曾经这样做过,-我希望我从来没有这样做过。我希望我已经将我的静态网站烘焙成WordPress主题。

SO网友:Bob

您是否尝试过使用以下工具

require(dirname(__FILE__) . \'/wp-load.php\');
请注意,这要求WordPress安装在网站的根目录中。

SO网友:user3066853

您可以通过单击以下链接逐步学习:

https://youtu.be/LFBe3KkyUA4

您可以在评论部分对任何查询进行评论,我们将在接下来的2小时内回答。

结束

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register