Cada meta-chave de postagem pode ter vários valores. Então você obtém os valores por padrão como uma matriz; a primeira entrada ( 0) é a mais antiga.
get_post_custom()busca todas as meta chaves com seus valores. Você pode simplificar seu código com:
$price = get_post_meta( $post->ID, 'price', TRUE );
$comake = get_post_meta( $post->ID, 'coMake', TRUE );
Quando o último parâmetro for get_post_meta()for TRUE, o WordPress retornará um único valor: a primeira entrada no meta-valor da postagem para a chave especificada.
A primeira chamada para get_post_meta()buscará e armazenará em cache todos os meta-valores para esse ID de postagem em segundo plano; portanto, as chamadas posteriores não resultarão em consultas adicionais ao banco de dados.
Um exemplo
Digamos que criamos uma meta-chave de postagem chamada colore a preenchemos com três valores diferentes para uma postagem. Então fazemos o mesmo com uma chave age.
add_action( 'wp_loaded', function() {
foreach ( array ( 'blue', 'red', 'yellow' ) as $color )
add_post_meta( 561, 'color', $color, FALSE );
foreach ( array ( '14', '40', '104' ) as $age )
add_post_meta( 561, 'age', $age, FALSE );
});
O último parâmetro FALSEdiz ao WordPress para não tornar essa meta-chave exclusiva - mas permitir vários valores para uma chave.
A estrutura resultante em nossa postmetatabela ficará assim:

Cada linha tem um único meta_id, mas cada um post_idpode ter vários meta_keys e cada um meta_keypode ter vários meta_values.
Agora vamos buscar todos os valores personalizados para a postagem 561:
add_action( 'shutdown', function(){
$custom = get_post_custom( 561 );
print '<pre>' . esc_html( var_export( $custom, TRUE ) ) . '</pre>';
});
Resultado:
array (
'_edit_last' =>
array (
0 => '1',
),
'_edit_lock' =>
array (
0 => '1367617428:1',
),
'color' =>
array (
0 => 'blue',
1 => 'red',
2 => 'yellow',
),
'age' =>
array (
0 => '14',
1 => '40',
2 => '104',
),
)
_edit_laste _edit_locksão internos do WordPress, ignoramos isso por enquanto. Observe que também obtemos esses valores e uma matriz, embora exista apenas um valor.
colore agesão matrizes como todos os valores meta pós.
$custom['color'][0]é blue.
Agora, buscamos apenas a cor com get_post_meta():
add_action( 'shutdown', function(){
$color = get_post_meta( 561, 'color' );
print '<pre>' . esc_html( var_export( $color, TRUE ) ) . '</pre>';
});
Resultado:
array (
0 => 'blue',
1 => 'red',
2 => 'yellow',
)
Temos aqui apenas uma parte dos nossos meta-valores. $color[0]ainda está blue. Nos bastidores, o WordPress já buscou todos os valores personalizados, portanto, um próximo hit ageseria veiculado no cache.
Em termos de desempenho get_post_custom()e get_post_meta()são iguais.
Última tentativa: obtenha a cor get_post_meta()como um único valor.
add_action( 'shutdown', function(){
$color = get_post_meta( 561, 'color', TRUE );
print '<pre>' . esc_html( var_export( $color, TRUE ) ) . '</pre>';
});
Resultado: blue.
O WordPress fez o que você fez no seu código: Ele pegou a chave da matriz 0e retornou o valor como uma string.
Essa é a opção mais legível, use-a para escrever um código fácil de entender.