سؤال

أقوم بتخصيص مدونة 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.

هل كانت مفيدة؟

المحلول

bloginfo('STYLESHEET_DIRECTORY') سوف يردد دليل ورقة الأنماط. عندما تعلن الصفيف ، فأنت تكتب بفعالية إلى stdout. هذا هو السبب في أنه سيظهر أعلى الصفحة. ما تبحث عنه هو get_bloginfo.

نصائح أخرى

يستخدم ينفجر داخليا، ينهار للداخل:

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

انضم إلى عناصر الصفيف مع سلسلة الغراء.

يبدو أن لديك فاصلة في النهاية. قد يكون ذلك. إزالته واختباره. أنا أيضا استبدال "مع الغناء".

تحديثاستبدال 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);
}

أعلم أن هذا ليس كذلك من الناحية الفنية إجابة سؤالك ، لكن هل فكرت:

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 مرة واحدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top