-1

私はphpを初めて使用しています...これはwordpressです。ここでの問題は何ですか?これは単純な for each ループです...

<?php
    foreach( $how_posts as $post ) : setup_postdata($post);
    echo '<li><a href="#section_' . get_post_meta($post->ID, 'sub_nav_name', true); . '">' . the_title(); . '</a></li>';
    $nav_items[] = html_entity_decode(get_the_title(), ENT_QUOTES, 'UTF-8');
    endforeach; 
?>
4

2 に答える 2

4

ここで注意すべき点がいくつかあります。

1) コードの途中にセミコロンがあります:

echo '<li><a href="#section_' . get_post_meta($post->ID, 'sub_nav_name', true); . '">' . the_title(); . '</a></li>';
// Should be:
echo '<li><a href="#section_' . get_post_meta($post->ID, 'sub_nav_name', true) . '">' . the_title() . '</a></li>';

2)endforeach「代替」構文を使用しています:

別の PHP 構文は可能な限り避けるべきです。これは、標準と可読性のためであり、コードを読まなければならない次の人があなたを追い詰めて錆びたナイフで刺すのを防ぐためです。

これらの構文は「代替」であるため、これらが操作を実行するための推奨される方法ではないと安全に想定できます。それらは機能し、現在この機能を非推奨にする計画はありませんが、PHP が制御不能な方法論に巻き込まれ始めているため、長期的には期待できません。

foreach( $how_posts as $post ) :
// Should be:
foreach( $how_posts as $post ) {

and

endforeach;
// Should be:
}

例:

<?php
foreach($how_posts as $post) {
  setup_postdata($post);
  echo '<li><a href="#section_' . get_post_meta($post->ID, 'sub_nav_name', true) . '">' . the_title() . '</a></li>';
  $nav_items[] = html_entity_decode(get_the_title(), ENT_QUOTES, 'UTF-8');
} 
于 2013-03-20T21:00:04.153 に答える
4

;関数の最後にある を削除します

echo '<li><a href="#section_' . get_post_meta($post->ID, 'sub_nav_name', true) . '">' . the_title() . '</a></li>';
于 2013-03-20T20:55:32.490 に答える