Pergunta

Estou personalizando o WordPress Blog e preciso fazer widgets de barra lateral personalizados. Meu PHP está enferrujado, na melhor das hipóteses. O que estou tentando fazer é concatenar uma variável PHP em uma string sendo definida como um elemento de matriz. Aqui está o código que estou usando, ele não parece funcionar. Tudo o que faz é imprimir o diretório da folha de estilo no topo de todas as páginas:

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>",
    ));

Então, como você pode ver aqui, estou tentando concatenar o bloginfo('stylesheet_directory') em 2 dos elementos. Isso não funciona corretamente. Ele acaba imprimindo -o no topo da página antes do doctype.

Foi útil?

Solução

bloginfo('Stylesheet_directory') ecoarão o diretório da folha de estilo. Quando você declara a matriz, está efetivamente escrevendo para o stdout. É por isso que ele será exibido no topo da página. O que você está procurando é get_bloginfo.

Outras dicas

Usar implodir:

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

Junte -se a elementos da matriz com uma corda de cola.

Parece que você tem uma vírgula no final. Pode ser isso. Remova e teste. Eu também substituo "por um Singe '.

ATUALIZARsubstituiu o blogInfo () por 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);
}

Eu sei que isso não é tecnicamente A resposta para sua pergunta, mas você considerou:

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>",
    ));

Seria mais fácil e rápido - envolveria apenas a chamada da função BlogInfo uma vez.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top