header.phpをプログラムで書き換える

All In- One Migration で別サイトにバックアップ。引っ越し機能は便利で強力だがHeaderに入れたhttpなどのリンクは元のままだ。引っ越し先headerにあるリンクで元のページに行ってしまう。まあ、考えれば引っ越しツールなんだからそれでいいんだけど。引っ越しでなく、インポートした方をバックアップや作業用として使いたいときには手動でインポート先にURL先を書き換える必要がある。
忙しいときには面倒だ。そこで大元にショートカットで以下のプログラムを入れておいて引っ越し先で起動すれば書き換えてくれるようWordPressのショートコードで組み入れておく。

[myphp file=’header_url_change’] <—動作しない?(この貼り直しを行ったら以下のfunction.php の$file.php を読んでくれたが?)

function.php(行の最後に追加でいい)

//ショートコードを使ったphpファイルの呼び出し方法
function my_php_Include($params = array()) {
 extract(shortcode_atts(array('file' =&gt; 'default'), $params));
 ob_start();
 include(STYLESHEETPATH . "/$file.php");
 return ob_get_clean();
}
add_shortcode('myphp', 'my_php_Include');

header_url_change.php

$filename = "/header.php";
$dir =  dirname(__FILE__);
$dirfl = $dir.$filename;
$fp = fopen( $dirfl,"rb");
$content = fread( $fp, filesize($dirfl) );
fclose( $fp );

$fp = fopen( $dirfl,"wb");
$a =  str_replace("japan.lgs.jp","omotenashi-welcome.com", $content);
fwrite($fp, $a);
fclose( $fp );
?>

※ファイルを読み書きはバイナリで扱わないと「<?php」などのタグがあると無視されリプレースできない。
※ショートコードの貼り付けはVisualModeでかな?

【制作者コメント】
デバッグ機能を「true」にするとエラーメッセージで画面が表示されなくなった。
ブラウザのリフレッシュでheader.phpは管理下にあるからいきなり呼ばれると駄目なのだろう。
書き換えに制約ありとErrorが出る。デバッグ機能を「false」だと分からなかった。
このショートコードを書いているページをリンクさせるのをどこでやるかだ。今回Topメニューにしてメニュー一項目として固定ページのショートトカットを実行させた。
上記のエラーのことを考えるとこれでは駄目だ。プラグインで実装かな。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です