bcn_after_fill
を使い、array_pop
やarray_unshift
でBreadcrumb NavXTのナビゲーションを調整することはできたんですが、
array_splice
を使うとFatal errorが出て「???」ってなったんで、とりあえず解決法
Array[i]とかで置き換え、挿入をする。
sample.php
function my_bcn_after_fill($bcnObj) {
// 新しいパンくず項目を作成
$trail_add = new bcn_breadcrumb();
$trail_add->set_title("sample");
$trail_add->set_url( site_url().'/sample/' );
// 入れたい箇所の項目を保管
$home_trail = $bcnObj->trail[1];
// 差し替え
$bcnObj->trail[1] = $trail_add;
// 保管したものを入れる
$bcnObj->trail[2] = $home_trail;
// 例えばこんな感じ
// HOME > hoge
// HOME > sample > hoge
return $bcnObj;
}
add_action('bcn_after_fill', 'my_bcn_after_fill');
なんでarray_splice使えないの?
入っているものを見ると、もともと入っている配列にはobject(bcn_breadcrumb)
というオブジェクトで格納されていたんですが、
array_splice
で挿入したものはobject(bcn_breadcrumb)
の中身がバラバラに入るようです。
他にスマートな方法があると思いますが、とりあえず見つかるまでの応急処置にどうでしょうか。(他のいい方法をご教授いただけるととても喜びます)