Estou construindo um site que usa campos extras K2, mas estou personalizando a saída para não apenas extrair todo o bloco de campo extra.
Normalmente, algo assim funciona para campos de entrada única:
<?php if($this->item->extraFields->streetaddressone->value != ''): ?>
<span class="itemExtraFieldsValue Address1"><?php echo $this->item->extraFields->streetaddressone->value ?></span>
<?php endif; ?>
Mas eu tenho um campo que é uma lista de seleção múltipla e quero puxar toda a matriz para uma linha na minha página de item.
Eu sou um pouco maluco, então fiquei preso nesse.
Depende do documento .php em que você está - se você estiver no item.php ou nos arquivos category-item.php, o seguinte deverá funcionar.
Na parte superior do documento, adicione este código:
<!-- Call to prepare extra fields -->
<?php
$extrafields = array();
foreach($this->item->extra_fields as $item)
{
$extrafields[$item->id] = $item->value;
}
?>
Então, onde você quiser chamar o valor do campo preenchido, use o seguinte:
<?php if($extrafields[ID_NUMBER_OF_FIELD]!=''):?> <!-- if filled in, then call data -->
<?php echo $extrafields[ID_NUMBER_OF_FIELD];?> <!-- actual data call -->
<?php endif; ?>
o tag.php funciona de maneira um pouco diferente, assim como os módulos K2.
tag.php - você não precisa do código extra na cabeça, o seguinte chamará seus dados de campo.
<?php $extrafields = json_decode($item->extra_fields);?>
<?php foreach($extrafields as $key=>$value): ?>
<?php if($extrafields[$key]->id == 'ID_NUMBER_OF_FIELD'&&$extrafields[$key]->value!=''): ?>
<?php echo $extrafields[$key]->value; ?>,
<?php endif; ?>
<?php endforeach; ?>
Novamente, com o module_k2_content, você não precisa da chamada de dados principal. Obtenha seus dados de campo desta maneira:
<?php echo $item->extraFields->ALIAS_OF_FIELD->value ;?>
Espero que ajude.
A resposta de @reactionfaye acima está correta. Para referência, isso faz parte do K2 desde novembro de 2012 :)
Introduzido originalmente nesta postagem do blog para o lançamento do K2 v2.6.2 ( http://getk2.org/blog/1068-k2-v262-now-available ):
Então, como você produziria diretamente campos extras individuais em suas substituições K2? Simples. Basta fazer algo assim (por exemplo, em item.php) para obter o nome do campo extra:
$ this-> item-> extraFields-> EXTRAFIELDALIASHERE-> name
Para obter o valor extra do campo, basta fazer o seguinte:
$ this-> item-> extraFields-> EXTRAFIELDALIASHERE-> value
Agora substitua EXTRAFIELDALIASHERE pelo alias real do campo extra que você deseja gerar.