フォーラムへの返信

9件の返信を表示中 - 121 - 129件目 (全129件中)
  • tecking

    (@tecking)

    本番サイトについては画像がない場合に表示される×印のアイコンが出ています。rotate.phpが動作していない、ということでしょうかね。

    rotate.php の後に引数を与えるとどうなりますか?
    たとえば rotate.php と同じディレクトリに test.jpg があったとして rotate.php までのパスを rotate.php?img=test.jpg とすると強制的に test.jpg が表示されるはずなのですが。

    これでも画像が表示されないとなると rotate.php が動作してないということになりますね。
    rotate.php や画像ファイル、およびそれを包含するディレクトリ( images および random)のパーミッションを再確認する必要があるかもしれません。

    テスト環境と本番環境でPHPの動作モード(モジュールモード or CGIモード)に違いがないかもチェックのポイントかと思います。

    tecking

    (@tecking)

    なかなか手強い相手ですね… 🙂

    私の場合、テンプレートファイルで

    <img src="<?php echo get_stylesheet_directory_uri(); ?>/images/random/rotate.php">

    と書いた箇所が

    <img src="http://www.example.com/wp-content/themes/theme_name/images/random/rotate.php">

    というようなかたちで出力されました。pyonkoさんの環境ではどうなりましたか?

    出力後の画像へのパスが .php で終わって不思議に思われるかもしれませんが、表示画像は rotate.php にて読み込み→出力されてるので実はこれでオッケイです。

    tecking

    (@tecking)

    当方でもGDライブラリがある環境で試してみました。動きました。

    改めてご質問を読み返してみたのですが

    ソースは、本番もテストサイトも同じで、
    src=”テーマdir/images/random/rotate.php”となっています。(いま思うとrotate.phpが生で出ているのはセキュリティ面で心配?)

    と書かれている

    <img src="テーマdir/images/random/rotate.php">

    は、テーマディレクトリ名から始まるパスになっている、ということでしょうか。
    テンプレートファイルの方で当該箇所を次のように書き換えてみるとどうなるか、一度お試しいただけませんか?

    <img src="<?php echo get_stylesheet_directory_uri(); ?>/images/random/rotate.php">

    rotate.phpを削除しても、状態は変化せず、エラーも表示されません。rotate.phpが動作していないようにも見えます。

    ごくごくシンプルなPHPスクリプトを動かしてみても状況が変わらないようであれば、原因は別のところにありそうですね。たとえば

    <?php phpinfo(); ?>

    とだけ書いたファイルを info.php という名前で random ディレクトリに保存して http://www.example.com/path/to/random/info.php でアクセスしてみるとどうでしょう? 

    念のため確認ですが rotate.php はUTF-8Nで保存されていらっしゃいますか?(テスト環境ではOKとのことなので大丈夫かと思いますが)

    原因を切り分けしていきましょう。

    1. テーマdir/images/random/random/ 内の既存画像をいったん削除して、違うファイル名の画像を数点アップすると、どのような動作になりますか?
    2. rotate.php 内の $folder = ‘.’; の行を ‘.’ ではなくサーバパス(通常 /home/USERNAME から始まる ramdom ディレクトリまでのパス)に書き換えるとどうなりますか?
    3. rotate.php は a. ランダムに画像を表示する(正常) b. 「IMAGE ERROR」と表示する(パス指定などの誤りで画像ファイルが読み込めない) c. 「Cannot initialize new GD image stream」と表示する(ライブラリが存在しないなど、GDの初期化ができない)の3とおりで処理を終えるようですが、a.~c.のどれになりますか?

    当該スクリプトを試す環境にないので想像の範囲での回答ですが、よろしければお聞かせください。

    本番サイトの他にテストサイトを別のレンサバで持っていますが、テストサイトは2つともOKなのに、最後に実施した本番サイトで不具合が起きてしまいました。

    テストサイトと本番サイトの環境に違いがあるからかもしれませんね。
    当該スクリプトを見たところGDライブラリを使っているようなので、本番サイト(のサーバ)でGDが有効になっているかphpinfoなどで調べてみてはいかがでしょうか。

    PHP: phpinfo – Manual

    カスタムメニューをあえて使わずにやりたい、ということでしたらこんな感じで twentyten ディレクトリの functions.php の最後に追記してはどうでしょう?
    (コード内の hoge を任意のクラス名に書き換えてください)

    function my_add_class( $str ) {
    	$home = get_home_url() . "/";
    	$str  = preg_replace( "!(href=\"{$home}\")!", "$1 class=\"hoge\"", $str );
    	return $str;
    }
    add_filter( 'wp_page_menu', 'my_add_class' );

    ただ、今後カスタマイズをかけていくのであれば twentyten ディレクトリ内のファイルをいじるのではなく「子テーマ」を活用された方がよいでしょうね。

    フォーラム: その他
    返信が含まれるトピック: WordPress 日本公式キャラクター名募集を開始します

    「ワップくん」で一票!

    ところでワップくん(仮)のベクターデータも配布してもらえるとうれしいなあ 🙂

    フォーラム: プラグイン
    返信が含まれるトピック: Breadcrumb NavXT:カスタム投稿のパンくずについて

    やや強引な方法かもしれませんし、3.9.0での検証結果なのですが……

    パンくずリストを表示させるための関数(というかテンプレートタグ?)の bcn_display() は

    bcn_display( true );

    と書くことにより、PHPで処理できる形で値を取得することができます。つまり

    $str = bcn_display( true );

    で変数 $str にパンくずリストの文字列を格納して preg_replace 等で $str の内容を置換(tomotomoさんの場合でしたら「artist」を「アーティスト」に置換)したうえで

    echo $str;

    とすれば、ご希望の表示結果になるかと思います。いかがでしょうか?

9件の返信を表示中 - 121 - 129件目 (全129件中)