web-dev-qa-db-ja.com

WordPressを既存のWebサイトに統合する

私はWordPressを既存のウェブサイトに統合することについて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_login_formによって呼び出される)が表示されますが、ログインできません。codexの情報が機能しないため、これは非常に面倒です WordpressとWebサイトの統合

それは動作しません。誰かが私を手伝ってくれる? WordPressフォーラムに投稿してみましたが、そこでは役に立ちませんでした

新しい編集11月7日:これがPHPファイルの外観の一例です。それはlite_index.phpと呼ばれ、wp-loadを含みます、そしてそれゆえに私はここの下のログインフォームが示すと信じていますが、それはまだログインできません。

<?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";
}
?>
1

私はかなり長いコメントを書き始めましたが、代わりにそれを解決策として書くことにしました。

すべてのファイルを1つの大きな寄せ集めに混ぜると、おそらくうまくいかないでしょう。しかし、もしあなたがWordPressをサブディレクトリに置いたら、それはうまくいくでしょう(それが私がそれをしていた方法です)。

覚えている!すでにWordPressがインストールされていて、投稿を移動したい場合は、単にファイルを移動することはできません。あなたは正しい手順に従わなければならないでしょう、それは ここで説明されています

静的なWebサイトと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インストールを別々に保ち、それを機能させることができます。これが私がしていた方法です、そしてそれはうまくいきました。


裏返し

私は(少しグーグルすることによって)それが@ Bobの提案がより一般的になったように見えることがわかります。 これはwp-loadを使った例です 。両者の違いがわからないことを認めなければなりません。

この解決策 3つ目の方法を提案します。

しかし、すべてのことが考慮されます...あなたがWordPressをロードする方法に関係なく、それから私はあなたの現在の課題はあなたのファイル構造だと思います(私が間違っていなければ)。 WordPressはそれ自身の隔離された環境(フォルダ)を必要とするので、それはそれをURLにして意図されたようにファイルを呼び出すことができます。


最後の言葉

しかし私が私のコメントで示唆したように。私はこれをしていました - そして、私は決してしないことを望みます。静的なWebサイトをWordPressテーマに焼き付けたことを願います。

1
Zeth

以下を使ってみましたか?

require(dirname(__FILE__) . '/wp-load.php');

これにはWordPressをWebサイトのルートディレクトリにインストールする必要があることに注意してください。

1
Bob