1

wordpress ブログをカスタマイズしていますが、カスタム サイドバー ウィジェットを作成する必要があります。私のPHPはせいぜい錆びています。私がやろうとしているのは、配列要素として設定されている文字列にphp変数を連結することです。ここに私が使用しているコードがありますが、動作していないようです。すべてのページの上部にスタイルシート ディレクトリを表示するだけです。

if ( function_exists("register_sidebar") )
    register_sidebar(array(
        "before_widget" => "<div class=\"rounded_box\"><div class=\"top_curve\"><img src=\"".bloginfo('stylesheet_directory')."/images/top_curve.jpg\" alt=\"Top\" width=\"247\" height=\"9\" /></div><div class=\"middle\">",
        "after_widget" => "</div><div class=\"bottom_curve\"><img src=\"".bloginfo('stylesheet_directory')."/images/bottom_curve.jpg\" alt=\"Bottom\"  /></div></div>",
        "before_title" => "<h2>",
        "after_title" => "</h2>",
    ));

ここでわかるように、bloginfo('stylesheet_directory')を 2 つの要素に連結しようとしています。これは正しく動作しません。の前にページの上部に印刷されるだけdoctypeです。

4

4 に答える 4

3

bloginfo('stylesheet_directory') は、スタイルシート ディレクトリをエコーし​​ます。配列を宣言すると、事実上 stdout に書き込みます。これが、ページの上部に表示される理由です。あなたが探しているのは ですget_bloginfo

于 2009-11-20T21:04:29.247 に答える
0

implodeを使用します:

string implode  ( string $glue  , array $pieces  )
string implode ( array $pieces )

配列要素を接着剤ストリングで結合します。

于 2009-11-20T20:56:01.027 に答える
0

最後にカンマがあるようです。それかもしれません。それを取り外してテストします。また、\"を単一の'に置き換えました。

UPDATE はbloginfo()をget_bloginfo()に置き換えました。

if ( function_exists("register_sidebar") )
{
  $args =array(
  "before_widget" => "<div class='rounded_box'><div class='top_curve'><img src='".get_bloginfo('stylesheet_directory')."/images/top_curve.jpg' alt='Top' width='247' height='9' /></div><div class='middle'>",
  "after_widget" => "</div><div class='bottom_curve'><img src='".get_bloginfo('stylesheet_directory')."/images/bottom_curve.jpg' alt='Bottom' /></div></div>",
  "before_title" => "<h2>",
  "after_title" => "</h2>");'

  register_sidebar($args);
}
于 2009-11-20T21:01:15.387 に答える
0

これが技術的にあなたの質問に対する答えではないことはわかっていますが、次のことを考慮しましたか。

if ( function_exists("register_sidebar") )
    $ssheet_dir = bloginfo('stylesheet_directory');
    register_sidebar(array(
            "before_widget" => "<div class=\"rounded_box\"><div class=\"top_curve\"><img src=\"$ssheet_dir/images/top_curve.jpg\" alt=\"Top\" width=\"247\" height=\"9\" /></div><div class=\"middle\">",
            "after_widget" => "</div><div class=\"bottom_curve\"><img src=\"$ssheet_dir/images/bottom_curve.jpg\" alt=\"Bottom\"  /></div></div>",
            "before_title" => "<h2>",
            "after_title" => "</h2>",
    ));

bloginfo 関数の呼び出しを 1 回行うだけで済みます。

于 2009-11-20T21:16:04.487 に答える