質問
なぜこれが HTML をエコーしないのか不思議です。私は、エコーと印刷に関連するSOの他の質問を熟読しました。
文字列内の 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; ?>" ;?>
「戦車、マーク」
解決
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;
?>
他のヒント
文字列を閉じません。次のようにする必要があります。
<?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
}
?>
ところで、あなたのフォーマットはあまり良くありません。改行は高価ではありません。
php インタープリターは次の時点で解釈を停止します。 ?>
そして、後から来るものはすべて通常の入力と見なされます。したがって、後者のコードはすべて再度解析され、エコーの一部ではありません。
PHP スクリプトを 2 回開きます。 <?php
一度だけあるべきです。
<?php
...「木曜、金曜、土曜、日曜の最新投稿:<?php
なぜ文字列から抜け出さないのですか?
<?php $my_query = new WP_Query('category_name=posts&showposts=1'); ?>
上記のコードは文字列の途中で止まっています。
印刷します
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 は 1 パスでのみ解析します。
<?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; ?'.'>';
?>
所属していません StackOverflow