Por que não vai este eco em PHP?
Pergunta
Estou curioso por que isso não vai ecoar o HTML; Eu já percorreu as outras questões em SO tendo a ver com eco e de impressão.
Deve ser o PHP loop while na seqüência, mas eu escapado das aspas duplas. Há algo acontecendo mais complexo, ou seja, o erro "objeto da classe WP-consulta não pôde ser convertido para string."
Estou sendo muito simplista com tentando ecoar o PHP?
Editado por alguma formatação (que não queria o trabalho em primeiro lugar).
E, o que eu preciso fazer é repetir o HTML que é gerado pelo circuito de consulta, porque esse é o link para o post wordpress.
<?php $d=date("D"); if (in_array($d, array('Thu','Fri','Sat','Sun')))
echo "The latest post for Thursday, Friday, Saturday, Sunday:
<?php $my_query = new WP_Query('category_name=posts&showposts=1'); ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<a href=\"<?php the_permalink() ?>\" rel=\"bookmark\"><?php the_title(); ?></a>.
<?php endwhile; ?>" ;?>
tanques ', Mark
Solução
Você não pode usar PHP assim. Tente isto:
$d=date("D");
if (in_array($d, array('Thu','Fri','Sat','Sun'))) {
echo "The latest post for Thursday, Friday, Saturday, Sunday: ";
$my_query = new WP_Query('category_name=posts&showposts=1');
while ($my_query->have_posts()) {
$my_query->the_post();
echo "<a href=\";
the_permalink();
echo "\" rel=\"bookmark\">";
the_title();
echo "</a>";
}
}
Ou se você preferir esta sintaxe:
<?php
$d=date("D");
if (in_array($d, array('Thu','Fri','Sat','Sun'))):
?>
The latest post for Thursday, Friday, Saturday, Sunday:
<?php
$my_query = new WP_Query('category_name=posts&showposts=1');
while ($my_query->have_posts()):
$my_query->the_post();
?>
<a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a>
<?php
endwhile;
endif;
?>
Outras dicas
Você não feche o seu string - que deve ser:
<?php
$d=date("D");
if (in_array($d, array('Thu','Fri','Sat','Sun')))
echo "The latest post for Thursday, Friday, Saturday, Sunday: ";
$my_query = new WP_Query('category_name=posts&showposts=1');
while ($my_query->have_posts())
{
$my_query->the_post();
?><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>.<?php
}
?>
A sua formatação não é muito bom btw. Novas linhas não são caros!
o intérprete php pára interpretação nas ?>
e considera tudo o que vem depois, como entrada normal. assim toda último código é analisado novamente e não faz parte do eco.
Você abre o script php duas vezes:. <?php
só deve ser lá uma vez
<?php
... "A última mensagem para quinta-feira, sexta-feira, sábado, domingo:<?php
Por que você nunca sair da corda?
<?php $my_query = new WP_Query('category_name=posts&showposts=1'); ?>
O código acima é certo preso no meio de sua string.
Ela imprime
The latest post for Thursday, Friday, Saturday, Sunday: <?php = new WP_Query('category_name=posts&showposts=1'); ?><?php while (()) : (); ?><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>. <?php endwhile; ?>
que é o que deveria. PHP única analisa em uma passagem.
<?php
$d=date("D");
if(in_array($d, array('Thu','Fri','Sat','Sun')))
echo 'The latest post for Thursday, Friday, Saturday, Sunday:'.
' <?php $my_query = new WP_Query(\'category_name=posts&showposts=1\'); ?'.
'><?php while ($my_query->have_posts()) : $my_query->the_post(); ?'.
'><a href="<?php the_permalink() ?'.
'>" rel="bookmark"><?php the_title(); ?'.
'></a>. <?php endwhile; ?'.'>';
?>