web-dev-qa-db-ja.com

相対的あるいは動的なサイトURLは可能ですか?

私はローカルのXamppワードプレスインストールを使用していて、それを私が一緒に働いている何人かの人々と共に一種のイントラネットとして使用しています。 LANルーターでアクセスできるようにする必要があります - サイトのURLとリンクを http:// localhost:8080 から私のIP http://192.168に変更する必要があることがわかりました。 x.xx:8080 表示する画像とCSS。

しかし、私たちが別のルーターや私の旅行用ルーターに接続すると、このIPが変わり、明らかにLAN上では機能しなくなることがわかりました。新しいコンピュータやサーバーがローカルサイトをホストしているたびに、サイト名を検索/置換したり変更したりすることは、本当に望まないのです。

質問:サイト/ホームのURLをホスティングコンピュータの現在のIPまたはコンピュータ名に対して動的にする方法があるかどうかを確認したいのですが。間違った解決策を探しているのであれば。

私はこれに対する解決策を広範囲に検索しました、しかし私の問題は私がどんな用語を検索すべきかわからない - またはより良い解決策があるかどうかであると感じます。私は賢い人が私を正しい方向に向けることができるといいのですが。

- 私のインターネット検索に基づいて、私はいくつかのプラグインを試してみました - それが修正されることを願って相対的なURLと「ルートの相対的なURL」ですが、それは違いを生じません。 - 私はトラベルルーターに静的IPアドレスも設定しました - しかし、コンピュータが変わった場合にはサイトのIPアドレスを変更する必要があるという問題が解決しません。 - 私は私のwp-configでもこれを試しました:

<?php
define('WP_HOME', 'http://' . $_SERVER['HTTP_Host']);
//add the next line if you have a subdirectory install
define('WP_SITEURL', WP_HOME . '/wordpress');
4
Taberkinslaw

誰かが私と同じような状況を持っている場合、私は追加することで解決策を見つけました:

/* That's all, stop editing! Happy blogging. */
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/* THIS IS CUSTOM CODE CREATED AT ZEROFRACTAL TO MAKE SITE ACCESS DYNAMIC */
$currenthost = "http://".$_SERVER['HTTP_Host'];
$currentpath = preg_replace('@/+$@','',dirname($_SERVER['SCRIPT_NAME']));
$currentpath = preg_replace('/\/wp.+/','',$currentpath);
define('WP_HOME',$currenthost.$currentpath);
define('WP_SITEURL',$currenthost.$currentpath);
define('WP_CONTENT_URL', $currenthost.$currentpath.'/wp-content');
define('WP_PLUGIN_URL', $currenthost.$currentpath.'/wp-content/plugins');
define('DOMAIN_CURRENT_SITE', $currenthost.$currentpath );
@define('ADMIN_COOKIE_PATH', './');

Wp-config.phpで私はサイト上でこの解決策を見つけた: http://davidmregister.com/dynamic-wp-siteurl/

みんな、ありがとう!

7
Taberkinslaw

新しいワードプレスサイトを作成するたびに、通常はこの問題を完全に回避します。

define('WP_HOME', '/');
define('WP_SITEURL', '/');

wordpressは全てのものにルート相対URLを使うようになります。他のドメインへのサイトの移行をはるかに簡単にします。あなたがあなたのサイトにフォルダを使ってアクセスするならば(例えば、 " http:// <ドメイン>/blog ")、あなたはそれらを以下に変えることができるでしょう:

define('WP_HOME', '/blog/');
define('WP_SITEURL', '/blog/');

既存のサイトでは、データベースおよびすべてのテーマ/プラグインファイルに、古いWP_HOMEおよびWP_SITEURLの値を使用してwordpressで生成された絶対URLがないことを確認してください。

編集:明確にするために、あなたはあなたのwp-config.phpにこれらの定義を追加します。

6
Jaded