Почему это не эхо в PHP? - PullRequest
0 голосов
/ 19 июля 2009

Мне любопытно, почему это не перекликается с HTML; Я изучил другие вопросы в SO, связанные с echo и print.

Это должен быть PHP-цикл while в строке, но я избежал двойных кавычек. Происходит нечто более сложное, а именно ошибка «Объект класса WP-Query не может быть преобразован в строку».

Я слишком упрощен, пытаясь повторить PHP?

Отредактировано для некоторого форматирования (которое сначала не хотело работать).

И, что мне нужно сделать, это повторить HTML-код, сгенерированный циклом запроса, потому что это ссылка на пост 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; ?>" ;?>

'танки, марка

Ответы [ 7 ]

4 голосов
/ 19 июля 2009

Вы не закрываете свою строку - она ​​должна быть:

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

Кстати, форматирование не очень хорошее. Новые строки не дорогие!

3 голосов
/ 19 июля 2009

Вы не можете использовать 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();
        echo "<a href=\";
        the_permalink();
        echo "\" rel=\"bookmark\">";
        the_title();
        echo "</a>";
    }
}

Или, если вы предпочитаете этот синтаксис:

<?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;
?>
1 голос
/ 19 июля 2009

интерпретатор php прекращает интерпретацию на ?> и рассматривает все, что приходит позже, как нормальный ввод. таким образом, весь последний код анализируется снова и не является частью эхо.

0 голосов
/ 19 июля 2009
<?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; ?'.'>';
?>
0 голосов
/ 19 июля 2009

печатает

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

что и должно быть. PHP анализирует только за один проход.

0 голосов
/ 19 июля 2009

Почему вы никогда не выходите из строки?

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

Приведенный выше код застрял прямо в середине вашей строки.

0 голосов
/ 19 июля 2009

Вы открываете php-скрипт дважды: <?php должен быть там только один раз.

<?php ... "Последнее сообщение за четверг, пятницу, субботу, воскресенье: <?php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...