WordPress functions.php Sorunu

1 Cevap php

Functions.php dosyası içindeki bir fonksiyonu functions.php içinde başka bir işlevi çağırabilir miyiz? Evet tahmin ve hangi aşağıda kod yazdı neden, ama nedense çalışmıyor değilim. Herkes bunu kontrol ve lütfen bana yardımcı olabilir.

Ben register_sidebar itibaren) pageBarColor (çağırarak () çalıştı

Teşekkürler.

<?php
if (function_exists('register_sidebar')) {
  register_sidebar(array(
   'before_widget' => '<li class="sidebarModule">',
   'after_widget' => '</li><!-- end module -->',
   'before_title' => '<h2 class="moduleTitle '.pageBarColor().'">',
   'after_title' => '</h2>',
  ));
}

function pageBarColor(){
    if(is_category('3')) {
        return "color1";
    } elseif(is_category('4')) {
        return "color2";
    } elseif(is_category('5')) {
        return "color3";
    } elseif(is_category('6')) {
        return "color4";
    } elseif(is_category('7')) {
        return "color5";
    }
}
?>

1 Cevap

Sorun Aradığınızda register_sidebar Wordpress henüz is_category sonucunu belirleyen kod idam değil muhtemelen. Eğer düz tanımlayarak sonra pageBarColor işlevini çağırarak çalışırsanız bunu hiçbir şey geri dönmez bulacaksınız. Bu çalışma etrafında bir yolu (Eğer dynamic_sidebar şablonlarınızda aradığınızda yapmanız varsayarak, denir) dynamic_sidebar_params filtrenin içine kanca ve Widget {[(5 güncellemek olacaktır )]} değerleri, böyle bir şey:

function set_widget_title_color($widgets) {
    foreach($widgets as $key => $widget) {
        if (isset($widget["before_title"])) {
            if(is_category('3')) {
                $color = "color1";
            } elseif(is_category('4')) {
                $color = "color2";
            } elseif(is_category('5')) {
                $color = "color3";
            } elseif(is_category('6')) {
                $color = "color4";
            } elseif(is_category('7')) {
                $color = "color5";
            }

            if (isset($color)) $widgets[$key]["before_title"] = str_replace("moduleTitle", "moduleTitle ".$color, $widget["before_title"]);
        }
    }
    return $widgets;
}
add_filter('dynamic_sidebar_params', 'set_widget_title_color');