2016-07-19 15 views
0

私はsprintfステートメントで動作するようにwordpressのグラバターを取得しようとしています。sprintfを使用してGravatarを印刷

<?php 
    if ('on' === $show_author || 'on' === $show_date || 'on' === $show_categories || 'on' === $show_comments) { 
     printf('<div class="post-wrapper"><p class="post-meta">%1$s %2$s %3$s %4$s %5$s <span class="comments">%6$s</span></p></div>', 
      (
       'on' === $show_author 
        ? et_get_safe_localization(sprintf(__('By: %s', 'et_builder'), '<span class="vcard2">' . get_avatar(get_the_author_meta('ID'), 80) . '</span><span class="author">' . et_pb_get_the_author_posts_link() . '</span>')) 
        : '' 
      ), 
      (
       ('on' === $show_author && 'on' === $show_date) 
        ? ' ' 
        : '' 
      ), 
      (
       'on' === $show_date 
        ? et_get_safe_localization(sprintf(__('%s', 'et_builder'), '<span class="published">' . esc_html(get_the_date($meta_date)) . '</span>')) 
        : '' 
      ), 
      (
       (('on' === $show_author || 'on' === $show_date) && 'on' === $show_categories) 
        ? ' ' 
        : '' 
      ), 
      (
       (('on' === $show_author || 'on' === $show_date || 'on' === $show_categories) && 'on' === $show_comments) 
        ? ' | ' 
        : ' ' 
      ), 
      (
       'on' === $show_comments 
        ? sprintf(esc_html(_nx('1 Comment', '%s Comments', get_comments_number(), 'number of comments', 'et_builder')), number_format_i18n(get_comments_number())) 
        : '' 
      ) 
     ); 
    } 

?> 

問題の行は、sprintf関数にあります。

? et_get_safe_localization(sprintf(__('By: %s', 'et_builder'), '<span class="vcard2">' . get_avatar(get_the_author_meta('ID'), 80) . '</span><span class="author">' . et_pb_get_the_author_posts_link() . '</span>')) 

私はエコーを前面に置くと、構文エラーです。私がセミコロンで閉じた場合、構文エラーです。

get_avatar(get_the_author_meta('ID'), 80)はまったく認められていないようですが、無視されます。 HTMLには何も出力されません。

アバターを表示する方法は、ワードプレスのディスカッションオプションでチェックされています。

これが出力されることになるだろうテストページ:Test page

答えて

0

欲求不満の多くの時間後、私はついにそれを考え出しました。

<?php 
       if ('on' === $show_author || 'on' === $show_date || 'on' === $show_categories || 'on' === $show_comments) { 
        echo get_avatar($post->post_author, 80); 
        printf('<div class="post-wrapper"><p class="post-meta">%1$s %2$s %3$s %4$s %5$s <span class="comments">%6$s</span></p></div>', 
         (
          'on' === $show_author 
           ? et_get_safe_localization(sprintf(__('By: %s', 'et_builder'), '<span class="vcard2">' . get_avatar($post->post_author, 80) . '</span><span class="author">' . et_pb_get_the_author_posts_link() . '</span>')) 
           : ' ' 
         ), 
         (
          ('on' === $show_author && 'on' === $show_date) 
           ? ' ' 
           : '' 
         ), 
         (
          'on' === $show_date 
           ? et_get_safe_localization(sprintf(__('%s', 'et_builder'), '<span class="published">' . esc_html(get_the_date($meta_date)) . '</span>')) 
           : '' 
         ), 
         (
          (('on' === $show_author || 'on' === $show_date) && 'on' === $show_categories) 
           ? ' ' 
           : '' 
         ), 
         (
          (('on' === $show_author || 'on' === $show_date || 'on' === $show_categories) && 'on' === $show_comments) 
           ? ' | ' 
           : ' ' 
         ), 
         (
          'on' === $show_comments 
           ? sprintf(esc_html(_nx('1 Comment', '%s Comments', get_comments_number(), 'number of comments', 'et_builder')), number_format_i18n(get_comments_number())) 
           : '' 
         ) 
        ); 
       } 

?> 

私はsprintfステートメントの前にエコーを入れ、cssで対処しなければなりませんでした。

関連する問題