preg_replace con preg_quote excepto una columna

Estoy tratando de hacer algunos trucos conpreg_replace usado conpreg_quote.

Tengo una matriz de objetos de datos json y lo que quiero

Reemplazar todos los valores de las claves excepto el valor de una clave

A continuación se muestra la estructura básica de la matriz de entrada:

$posts = [{"title":"Test owy post avela","subtitle":"test subtitle",   
           "slug":"test owy-post-laravela-4", "created_at":"2014-11-02"}, 
          {...} ] 

y necesito reemplazar todos los valores detes a<span>tes</span> a excepción deslug valor de la clave

a continuación se muestra el código donde$posts es generado

$posts = Post::where('title', 'LIKE', '%'.$s.'%')->orWhere('content', 'LIKE', '%'.$s.'%')->get()->toArray();
foreach($posts as &$elm){
     $elm = array_map(function($i) use($s){
          return preg_replace("/(" . preg_quote($s) . ")/is", "<span style='background: #92CF18;'>$1</span>", $i);
     }, $elm);
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta