44

多くのPHPとHTMLをエコーする必要があります。

私はすでに明白なことを試しましたが、それは機能していません:

<?php echo '
<?php if ( has_post_thumbnail() ) {   ?>
      <div class="gridly-image"><a href="<?php the_permalink() ?>"><?php the_post_thumbnail('summary-image', array('class' => 'overlay', 'title'=> the_title('Read Article ',' now',false) ));?></a>
      </div>
      <?php }  ?>

      <div class="date">
      <span class="day">
        <?php the_time('d') ?></span>
      <div class="holder">
        <span class="month">
          <?php the_time('M') ?></span>
        <span class="year">
          <?php the_time('Y') ?></span>
      </div>
    </div>
    <?php }  ?>';
?>

どうすればいいですか?

4

7 に答える 7

53

phpタグを出力する必要はありません。

<?php 
    if ( has_post_thumbnail() ) 
    {
        echo '<div class="gridly-image"><a href="'. the_permalink() .'">'. the_post_thumbnail('summary-image', array('class' => 'overlay', 'title'=> the_title('Read Article ',' now',false) )) .'</a></div>';
    }

    echo '<div class="date">
              <span class="day">'. the_time('d') .'</span>
              <div class="holder">
                <span class="month">'. the_time('M') .'</span>
                <span class="year">'. the_time('Y') .'</span>
              </div>
          </div>';
?>
于 2012-09-21T16:59:57.427 に答える
51

そのような文字列内でPHPコードを実行することはできません。それはうまくいきません。同様に、PHPコード()が「不足」している場合、PHPブロックの外側のテキストは出力されたと見なされるため、ステートメント?>は必要ありません。echo

PHPコードのチャンクを使用してから複数行の出力を行う必要がある場合は、HEREDOCの使用を検討してください。

<?php

$var = 'Howdy';

echo <<<EOL
This is output
And this is a new line
blah blah blah and this following $var will actually say Howdy as well

and now the output ends
EOL;
于 2012-09-21T16:58:30.393 に答える
22

ヒアドキュメントを使用して、変数を含む複数行の文字列を出力します。構文は...

$string = <<<HEREDOC
   string stuff here
HEREDOC;

「ヒアドキュメント」の部分は引用符のようなもので、好きなものにすることができます。終了タグは、その行の唯一のものである必要があります。つまり、前後に空白を入れず、コロンで終了する必要があります。詳細については、マニュアルを確認してください

于 2012-09-21T17:02:04.880 に答える
4

コロン表記を使用する

別のオプションは、角かっこの代わりにifコロン(:)とを使用することです。endif

<?php if ( has_post_thumbnail() ): ?>
    <div class="gridly-image">
        <a href="<?php the_permalink(); ?>">
        <?php the_post_thumbnail('summary-image', array('class' => 'overlay', 'title'=> the_title('Read Article ',' now',false) )); ?>
        </a>
    </div>
<?php endif; ?>

<div class="date">
    <span class="day"><?php the_time('d'); ?></span>
    <div class="holder">
        <span class="month"><?php the_time('M'); ?></span>
        <span class="year"><?php the_time('Y'); ?></span>
    </div>
</div>
于 2017-02-13T09:46:22.163 に答える
0

show_source();PHPの機能を使用します。詳細については、show_sourceをご覧ください。これは私が推測するより良い方法です。

于 2012-09-21T17:11:19.210 に答える
0

コード内の一重引用符の内部セットが文字列を強制終了しています。一重引用符を押すと、文字列が終了し、処理が続行されます。次のようなものが必要になります。

$thisstring = 'this string is long \' in needs escaped single quotes or nothing will run';
于 2012-09-21T16:59:58.303 に答える
0

これを行うには、文字列内のすべての文字を削除する'か、エスケープ文字を使用する必要があります。好き:

<?php
    echo '<?php
              echo \'hello world\';
          ?>';
?>
于 2012-09-21T17:03:18.803 に答える