Suporte » Desenvolvendo com WordPress » Colocar link dentro do echo usando custom fields

  • Resolvido Roberto

    (@radbox)


    Pessoal, eu perdi dias pesquisando e testando inúmeras formas de fazer aparecer um link que usa echo e custom fields, mas não obtive sucesso. O código é este:

    <?php
    $titletxt = get_post_meta(get_the_ID(), 'LinkWarning', true);
    $titlelink = get_post_meta(get_the_ID(), 'mediafire', TRUE);
    if ($titletxt <> "off" and $titletxt <> "on") echo ' ';
    else if ($titletxt == 'on') echo ' '
    ?>

    O custom field ‘mediafire’ é um link e eu preciso que ele apareça quando a variável $titletxt for diferente de on ou off. *** Esta parte eu já testei e funciona ***

    Também já consegui fazer o link funcionar do jeito que eu preciso mas somente fora do echo. Fica assim:

    <a href="<?php echo get_post_meta($post->ID, 'mediafire', TRUE); ?> ">Manual <?the_title() ?> </a>

    É meio complicado mesmo, pelo menos pra mim. O link é conteúdo da custom field ‘mediafire’ e a âncora é formada pela palavra Manual junto com o título do post, retornado pela função <?the_title() ?>`.

    Agora a pergunta de um milhão de dólares: Como fazer o echo chamar o código acima de modo que ele apareça como já funciona no rodapé deste artigo?

Visualizando 5 respostas - 1 até 5 (de um total de 5)
  • Radbox,

    O echo nada mais faz do que imprimir na tela uma mensagem ou um valor duma variável. No caso do seu código, ele não imprime nada (echo ' '). Pra que ele mostre o link e tal, mande ele imprimir o valor da variável $titlelink ali.

    <?php
    if ($titletxt <> "off" and $titletxt <> "on") echo "O link é $titlelink ";
    ?>

    Mas assim: confesso que não entendi muito bem o que cê ta querendo. Seria isso aí mesmo?

    Criador do tópico Roberto

    (@radbox)

    Realmente não consegui explicar como convém.

    O código que postei anteriormente não está completo. Falta a parte para colocar dentro do echo. Vou colocar abaixo o código completo, mas que está dando erro justamente dentro do último echo:

    <?php
    $titletxt = get_post_meta(get_the_ID(), 'LinkWarning', true);
    $titlelink = get_post_meta(get_the_ID(), 'mediafire', TRUE);
    if ($titletxt <> "off" and $titletxt <> "on") echo 'Indisponível';
    else if ($titletxt == 'on') echo '<a href="<?php echo get_post_meta($post->ID, 'mediafire', TRUE); ?> ">Manual <?the_title() ?> </a>'
    ?>

    Tenta assim:

    <?php
    $titletxt = get_post_meta(get_the_ID(), 'LinkWarning', true);
    $titlelink = get_post_meta(get_the_ID(), 'mediafire', TRUE);
    if ($titletxt <> "off" and $titletxt <> "on") echo 'Indisponível';
    else if ($titletxt == 'on') {
    echo "<a href='$titlelink'>Manual ";
    the_title();
    echo "</a>";
    }
    ?>

    Criador do tópico Roberto

    (@radbox)

    Olá Renato.

    Funcionou 100%. Exatamente do jeito que eu precisava. Eu procurei muito e não tinha encontrado qualquer indicativo que seria necessário colocar ponto e vírgula entre o the_title(), nem que o precisava ficar entre aspas.

    Sua solução já me atendeu plenamente, mas se for possível, você poderia me explicar como funciona? Gostaria de aprender para dominar esta técnica. Se você também souber, me ensina por favor a lógica da coisa.

    Agradeço muito a gentileza de me dar a solução, independente de uma futura explicação do como funciona. Obrigado eduardozulian e renato_s.

    Olá!
    Tua dúvida era de PHP, e não de WordPress.

    O echo é uma instrução em php que joga para a tela (na verdade, para o arquivo html) o que estiver entre aspas. Quando vc chama o echo, vc já está em “modo PHP”, o que é dado pelo ‘<?php’. Você estava dando um echo dentro de outro echo, quando o que vc precisava era apenas:

    1. pedir para ele “imprimir” a variável que vc já tinha definido com o conteúdo do custom field;

    2. Sair do echo para chamar o “the_title();” (que já tem um echo embutido na função);

    3. Voltar para o echo para terminar o texto que montava o link.

    Leia qualquer tutorial de php com relação ao echo que já vai te dar uma base boa.

    Abraços.

Visualizando 5 respostas - 1 até 5 (de um total de 5)
  • O tópico ‘Colocar link dentro do echo usando custom fields’ está fechado para novas respostas.