0

我正在为 WordPress 开发一个自定义主题,并且有一个逗号可能是最愚蠢的问题!我正在使用以下代码来呈现入口元:

<?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

尝试这个。去掉逗号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 回答
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 回答