サポート » 使い方全般 » カスタム用javascript,cssの保存方法

  • 解決済 pyonko

    (@pyonko)


    基本的なところですが、教えてください。
    サイトをだんだん作り込んでいくと、投稿や固定ページ毎にjavascript,css,(デザイン用)画像等のファイルを参照させることになっていました。

    全てのテンプレートで共通的に使うものや、WPのテンプレートタグで上手く読み込み分けることができればよいが、どうしても前日のような個別対応が出てきてしまいます。

    しかし、サーバーの移転等に伴い、ドメインが変更になったりすると、MySqlのインポートファイルをテキストエディタで開き、個別対応したファイルのhrefやsrcのurlを検索・一括変更するなどの作業が必要になります。

    こうした変更箇所をなるべく少なくするためには、カスタマイズ用のjs,css,画像等のファイルは、どこのディレクトリーに置き、また、投稿・固定ページの投稿時にhrefやsrcをどのように記述したらよいでしょうか?例えば、(子)テーマのディレクトリーに/js,/css,/imagesなどのディレクトリを作るのがよいのか、wp-include,またはwp-adminの中に/js,/cssなどとするのが良いのか・・・

    また、画像についても、メディア画像は、デフォルトでは「年/月/」というディレクトリに保存されるので、エディタで検索・一括変更の際も、複数の「年/月/」での変更が必要になり、リンク切れ発生等心配になってきます。

    サーバー移転時には、WordPressのフォルダ一式と、MySqlのバックアップデータ一式を、新サーバーに複写するだけに近い形でで完了するようにするには、ファイルの管理、記事、テンプレートをどのように記述するのがよいでしょうか?

    よろしくお願いいたします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • 最善の答えかどうかは分からないのですが、私ならな話です。

    js, cssファイルはテンプレート階層に設置します。
    header.phpなどのテンプレートでis_single, is_pageなどの判定系テンプレートタグを使い読込ませます。

    画像はフォルダ毎コピーして移動すれば良さそうですが、なにかまずいことがあるのでしょうか?

    あ、ドメイン変更の部分を見落としてました。
    ドメイン変更する状況の方がまずいんじゃないですか?
    サーバー変更してもドメイン変更しなくて済むようにドメインを取得した方が良いと思います。

    そうですね、何が最善なのか当方もよくわかりませんので、いくつか方法だけ。
    taikikenさんとかぶらないように答えるとすると…

    ・サーバーの移転
    ドメインが変更になる場合、DBの修正は必須だと思います。これはtaikikenさんの意見と同じですね。ただし、DBの修正さえ行えばあとは簡単だとも言えますね。

    まず、DBはphpmyadmin上でエクスポート・インポートを行えば、
    1.エクスポートしたファイルをテキストエディターで開いて一括修正かけてインポート。
    2.エクスポートしたファイルをインポートしてからSQLで一括修正。
    SQLが叩けるなら2の方が簡単かも?

    もうひとつ、旧サーバーと新サーバーがどっちも稼働中なら・・・(同じドメインで移行の場合は難しいかも、ドメインが違う場合の方が簡単かな?)
    ・旧サーバーのWordPressの管理画面でXMLエクスポート、そのまま新サーバーの管理画面でインポート。これなら画像も持ってきてくれますので比較的簡単です。ただし、記事関係だけですので、新サーバーの設定などは事前に行っておく必要があります。

    どちらの方法も一長一短ですかね。

    ちなみに・・・

    しかし、サーバーの移転等に伴い、ドメインが変更になったりすると、MySqlのインポートファイルをテキストエディタで開き、個別対応したファイルのhrefやsrcのurlを検索・一括変更するなどの作業が必要になります。

    ドメインの変更の場合はドメインだけ置き換えすればいいと思いますよ。サーバー移転したときに階層構成まで変更しちゃったっていうならそうもいかないかもしれませんが。hrefやurlを探す必要なんてあるかな?

    ・画像やcssなど。

    サイトをだんだん作り込んでいくと、投稿や固定ページ毎にjavascript,css,(デザイン用)画像等のファイルを参照させることになっていました。

    これが気になりますが・・・ページごとに違うcssを読むようにheaderなどを修正しているということでしょうかね?しかもurlじか書きで?
    cssなどで画像の位置などを指定するときはルートから指定するなんて方法もありますね。例えば、

    http://example.com/blog/wp-content/template/hoge/css/style.css

    などの場合から

    http://example2.jp/blog/wp-content/template/hoge/css/style.css

    などへ移転する場合でも、ルートからの指定はどちらも同じ

    /blog/wp-content/template/hoge/image/sample.jpg

    と書くことができますね。つまり移転先の階層構造(上の場合は/blog)を変更しなければ基本的に画像やcssなどのリンク先が変わることはないということですね。

    ちなみに、headerなどphpの効く範囲であればtaikikenさんのおっしゃるとおり関数を利用して指定するのがいいですね、TEMPLATEPATHとか利用するのもいいと思います。

    サーバー移転時には、WordPressのフォルダ一式と、MySqlのバックアップデータ一式を、新サーバーに複写するだけに近い形でで完了するようにするには、ファイルの管理、記事、テンプレートをどのように記述するのがよいでしょうか?

    ここが一番重要ですよね。例えば記事の投稿の際に絶対アドレスで書かないように例えばルートからの指定で書いておくとか、テンプレートに直接cssやjavascriptや画像を書き込む場合は関数やTEMPLATEPATHなどを利用するとか、移転の際に変更しなくてもいい階層にしておくとか(/blogって作っておいたら新サーバーではすでに/blogフォルダが存在してたとか・・・痛たたってなりますよね)工夫は必要かもしれませんね。

    でも、心配されている画像の年月日フォルダですが、DBとフォルダ構成をそのまま移行するのであれば変わることはないので修正とかいらないと思いますよ。何が心配なんだろ・・・?

    まあ、参考程度にしてください;)

    トピック投稿者 pyonko

    (@pyonko)

    回答者の皆様、ご協力ありがとうございます。
    私が直面しそうな問題は、現在試作しているサイトを下に、現在「運用中」のサイトをリニューアルすることです。そして運用中のドメインは現行のドメインを維持することになります。試作中のサイトはほぼ出来上がっているので、これを下になるべく手間暇かけずに移行したいというのがまずあります。
    まだ試作が半ば終わった時点で一度、移転のシミュレーションをした時の経験から、このような質問をさせてもらったのですが、
    <1>テンプレートに直接imgタグやscriptタグに直接書き込んだurlは、移転後にテンプレート編集で修正しましたが、今後はget_bloginfo()関数等を使うことで修正しなくて済むようにできることが分かりました。「TEMPLATEPATH」も同様に使えるみたいですね。そのためにはtaikikenさまご指摘のように、js, cssファイルはテンプレート階層に設置する必要がありそうですね。
    <2>次にエクスポートしたバックアップファイルの処理はshokun0803さまが挙げられた1番の方法でした(MySqlの操作にあまり慣れてませんので)。この時urlについては、フォルダ階層が維持される部分は置換の対象から外せば一発置換で済むようなところが殆どでしたが、とにかく凄い数で、エディタが途中でストップしてしまったり、何かの拍子にファイルの形式が変わってしまった(?)など、が発生し、「一発」では終われませんでした。置換する箇所を少なくしたいと思いました。設定・記述方法によっては、この数が大幅に減らせないかと思ったのが質問した背景です。バックアップファイルの中身をよく分析してないのですが、(絶対的な)urlは、
    (1)テンプレートに記述された関数が出力するもの。カスタムメユーやサイドバー・ウィジェットのメニューとなるurl
    (2)テンプレートにimgタグやscriptタグで直接指定するurl(自サイト内でも直接書いているものが結構あります・・・・)
    (3)投稿・固定ページにWPの機能で挿入する画像等メディアのurl
    (4)プラグインを使って、投稿・固定ページにカスタムフィールドから指定するjs,cssのurl。これも自サイト内のurlをシッカリ記述してます。
    (5)投稿・ページの編集画面に直接書き込むもの(imgタグやscriptタグを手書きすような場合)
    があると思います。(1),(3),(4)は普通に出てくるケースだと思うのですが、相対的なurlで出力する方法があればよいと思うのですが。(4)はプラグインに依存してしまうので何ともいたしかたなのですが、(1),(3)のケースが相対urlになれば、置換の対象はかなり減ると思っています。
    移転の細かい作業のノウハウは、あまりネット上から探せなかったので、恥ずかしながら質問してしまった次第です。

    現在試作しているサイトを下に、現在「運用中」のサイトをリニューアルすることです。

    これ、よくやってますがpyonkoさんのように悩んだこと無いです。
    なにか私の配慮が足りないのかもしれませんが…

    ドメインの変更は、設定 > 一般設定 画面の
    WordPress のアドレス (URL)
    サイトのアドレス (URL)
    を変更すれば可能だと思います。

    テンプレートにURLをハードコードするのは無しですけど…

    あ、ひょっとしてテスト用と本番用のサーバーが物理的に違うのでしょうか、テスト環境でOKになったら本番サーバーに移動させているということですか?
    だったら面倒ですよね。
    お試しになってる、ダンプしたSQLのURLをエディタで変更するのが良さそうです。
    エディタが悲鳴をあげるぐらいのデータなら小分けにして処理するしか無さそうです。

    本番用サーバーにテストディレクトリを作成してリニューアルする方法ばかりなので私の話は参考にならないようです。

    トピック投稿者 pyonko

    (@pyonko)

    ありがとうございます。
    (1)テスト環境でOKになったら本番サーバーに移動させます。恐らくテスト環境とは違う業者のサーバーになりますが、まだ決定していません。
    (2)なお、ドメインは維持しますがサーバーは現在使用中の業者にはなりません。phpその他がWP3.1以上に対応してないからです。
    ですので、
    2つ、または3つのサーバーが関係してくる移転になります。
    ただ、テスト環境のサーバーに現行ドメインを移管することになれば、taikikenさまが提示して下さった方法が使えそうです。しかし、テスト環境では、http://aaa.bbb.jpですが、運用中のドメインはhttp://www.ccc.co.jpなのです。もし同じ物理サーバーで移行できたら可能ということになりますか?

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「カスタム用javascript,cssの保存方法」には新たに返信することはできません。