0

私はWordPressのカスタムテーマに取り組んでおり、おそらくコンマで最も厄介な問題があります!次のコードを使用してentry-metaを表示しています。

<?php
                    printf( __( '<span class="meta-prep meta-prep-author screenreader">Posted on </span><a href="%1$s" rel="bookmark"><time class="entry-date" datetime="%2$s" pubdate>%3$s</time></a> <span class="meta-sep"> by </span> <span class="author vcard"><a class="url fn n" href="%4$s" title="%5$s">%6$s, %7$s</a></span>', 'ngngcustom' ),
                        get_permalink(),
                        get_the_date( 'c' ),
                        get_the_date(),
                        get_author_posts_url( get_the_author_meta( 'ID' ) ),
                        sprintf( esc_attr__( 'View all posts by %s', 'ngngcustom' ), get_the_author() ),
                        get_the_author(),
                        get_the_author_meta('user_title')
                    );
                ?>

問題は、すべてのユーザーがタイトルを持っているわけではないということです。これらのインスタンスでハングしているコンマ(%6 $ sと%7 $ sの間)を取り除くにはどうすればよいですか?私はphpを知らないことを理解してください。コピー/貼り付けして少し微調整します。だから私は本当に明確な解決策が必要です。

4

2 に答える 2

0

わかりませんが、コンマをパラメーターに移動し、インライン条件を使用して空かどうかを確認できると思います。このようなもの。これがまったく機能するかどうかはわかりませんが。試してみる価値はあります。

<?php
                    printf( __( '<span class="meta-prep meta-prep-author screenreader">Posted on </span><a href="%1$s" rel="bookmark"><time class="entry-date" datetime="%2$s" pubdate>%3$s</time></a> <span class="meta-sep"> by </span> <span class="author vcard"><a class="url fn n" href="%4$s" title="%5$s">%6$s %7$s</a></span>', 'ngngcustom' ),
                        get_permalink(),
                        get_the_date( 'c' ),
                        get_the_date(),
                        get_author_posts_url( get_the_author_meta( 'ID' ) ),
                        sprintf( esc_attr__( 'View all posts by %s', 'ngngcustom' ), get_the_author() ),
                        get_the_author(),
                        ((get_the_author_meta('user_title') != '') ? ', '.get_the_author_meta('user_title') : '')
                    );
                ?>
于 2013-01-24T19:05:36.803 に答える
0

これを試して。のカンマを取り除き、次のprintfコードを追加します。

$author_title = get_the_author_meta('user_title');
if (0 < strlen($author_title)) {
  $author_title = ', '.$author_title;
} else {
  $author_title = '';
}
printf( __( '<span class="meta-prep meta-prep-author screenreader">Posted on </span><a href="%1$s" rel="bookmark"><time class="entry-date" datetime="%2$s" pubdate>%3$s</time></a> <span class="meta-sep"> by </span> <span class="author vcard"><a class="url fn n" href="%4$s" title="%5$s">%6$s %7$s</a></span>', 'ngngcustom' ),
                    get_permalink(),
                    get_the_date( 'c' ),
                    get_the_date(),
                    get_author_posts_url( get_the_author_meta( 'ID' ) ),
                    sprintf( esc_attr__( 'View all posts by %s', 'ngngcustom' ), get_the_author() ),
                    get_the_author(),
                    $author_title
                );
?>
于 2013-01-24T19:06:11.620 に答える