1

私はワードプレスのテーマとPHPが初めてです。(これがWPに固有のものだとは思いません)HTMLのブロック(PHPコードが埋め込まれた)をPHP変数に保存する最良の方法を知りたいです。

<?php
function rfttc_insert_nav_menu ($position){
$poswanted = 'above';
$nav_code = 
    '<nav id="site-navigation" class="main-navigation" role="navigation">
        <h3 class="menu-toggle"><?php _e( \'Menu\', \'twentytwelve\' ); ?></h3>
        <a class="assistive-text" href="#content" title="<?php esc_attr_e( \'Skip to content\', \'twentytwelve\' ); ?>"><?php _e( \'Skip to content\', \'twentytwelve\' ); ?></a>
        <?php wp_nav_menu( array( \'theme_location\' => \'primary\', \'menu_class\' => \'nav-menu\' ) ); ?>
    </nav><!-- #site-navigation -->'

if($position == $poswanted)
    return $nav_code;
}
?>

ここで多くの質問を読むと、nowdoc と heredoc は適切な選択ではないと思います。一重引用符を試し、中の一重引用符をエスケープしました。二重引用符と同じです。どちらの試行でも、エラー メッセージが表示されました。

ここで何か助けていただければ幸いです。

編集* 次のコードは、最終的に機能したものです。

<?php
function rfttc_insert_nav_menu ($position){
    $poswanted = 'below';
    if($position == $poswanted){?>
        <nav id="site-navigation" class="main-navigation" role="navigation">
        <h3 class="menu-toggle"><?php __( 'Menu', 'twentytwelve' )?> </h3>
        <a class="assistive-text" href="#content" title="<?php
        esc_attr_e( 'Skip to content', 'twentytwelve' );
        ?>"><?php  _e( 'Skip to content', 'twentytwelve' );?>"</a>
        <?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) );?>
        </nav><!-- #site-navigation -->
        <?php
    }
}
?>

正しい方向に向けてくれた TJohnW に感謝します: インライン PHP を挿入しようとするのではなく処理します。

4

1 に答える 1

1

私はあなたがここで何をしようとしているのか知っていると思います。これを試してみてください。

<?php
function rfttc_insert_nav_menu ($position){
   $poswanted = 'above';
   $nav_code = 
  '<nav id="site-navigation" class="main-navigation" role="navigation">
   <h3 class="menu-toggle">'. _e( 'Menu', 'twentytwelve' ) . '</h3>
   <a class="assistive-text" href="#content" title="' . esc_attr_e( 'Skip to content', 'twentytwelve' ) . '">' . _e( 'Skip to content', 'twentytwelve' ) . '</a>' . wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ) . '</nav><!-- #site-navigation -->';

  if($position == $poswanted) return $nav_code;
}
?>
于 2013-01-26T05:41:22.030 に答える