Domanda

Sono curioso di sapere perché questo non farà eco all'HTML;Ho esaminato le altre domande in SO che hanno a che fare con l'eco e la stampa.

Deve essere il ciclo while PHP nella stringa, ma ho evitato le virgolette doppie.Sta succedendo qualcosa di più complesso, vale a dire l'errore "L'oggetto della classe WP-Query non può essere convertito in stringa."

Sono troppo semplicistico nel cercare di riecheggiare il PHP?

Modificato per alcune formattazioni (che all'inizio non volevano funzionare).

E quello che devo fare è riprodurre l'HTML generato dal ciclo di query, perché quello è il collegamento al post di 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; ?>" ;?>

«Grazie, Mark

È stato utile?

Soluzione

Non è possibile utilizzare PHP come quello. Prova questo:

$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>";
    }
}

O se si preferisce questa sintassi:

<?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;
?>

Altri suggerimenti

Non si chiude la stringa - dovrebbe essere:

<?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
}
?>

Il tuo formattazione non è molto buona btw. A capo non sono costosi!

l'interprete php si ferma interpretazione durante ?> e considera tutto ciò che viene in seguito come input normale. così tutti quest'ultimo codice viene analizzato nuovo e non parte dell'eco.

Apri lo script php due volte: <?php dovrebbe essere lì solo una volta.

<?php ..."L'ultimo post di giovedì, venerdì, sabato, domenica: <?php

Perché non esce la stringa?

<?php $my_query = new WP_Query('category_name=posts&showposts=1'); ?>

Il codice di cui sopra è bloccato proprio nel bel mezzo della stringa.

Esso stampa

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; ?>

che è quello che dovrebbe. PHP analizza in un solo passaggio.

<?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; ?'.'>';
?>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top