“%5$s”的值在 Wordpress 类别列表中意味着什么?
What does the value of '%5$s' mean within Wordpress category listing?
我目前正在将 Wordpress 多站点编辑为 remove/repair 损坏的 link。索引页面在主页上以磁贴的形式列出了所有子博客中的所有帖子。应用于作者姓名的 link 不正确。
我已经找到它,在 content-single.php 页面中生成了一些代码来检索数据,值为 %5$s
我认为它可能是正则表达式,但我无法确认。该值看起来更像是用于从数据库中检索变量的 shorthand 表达式。进行了 google 搜索,但仍然找不到。我看到了这个手抄本页面 https://codex.wordpress.org/Function_Reference/get_the_category_list
我仍然无法理解这些值的含义。它们是什么意思?
所以我对主题中的 PHP 文件进行了追溯。首先,我在 'content-single.php' 页面中看到了这个函数,它生成了包含错误 link 的内容 <?php slqblogs_posted_on(); ?>
<div class="entry-meta">
<?php slqblogs_posted_on(); ?>
<span class="sep">|</span>
<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style ">
<a href="http://www.addthis.com/bookmark.php?v=250&pubid=ra-4f836b545f19f0e0" class="addthis_button_compact">Share</a>
</div>
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4f836b545f19f0e0"></script>
<!-- AddThis Button END -->
<div class="clear"></div>
</div><!-- .entry-meta -->
很明显,我查看了 'theme-functions.php' 文件,我可以看到该函数的所有优点:
if ( ! function_exists( 'slqblogs_posted_on' ) ) :
/**
* Prints HTML with meta information for the current post-date/time and author.
* Create your own slqblogs_posted_on to override in a child theme
*
* @since slqblogs 1.2
*/
function slqblogs_posted_on() {
printf( __( '<span class="posted-on"><a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date published" datetime="%3$s" pubdate>%4$s</time><time class="updated">%8$s</time></a></span><span class="sep">|</span><span class="byline"> <span class="author vcard"><a class="url fn n" href="%5$s" title="%6$s" rel="author">%7$s</a></span></span>', 'slqblogs' ),
esc_url( get_permalink() ),
esc_attr( get_the_time() ),
esc_attr( get_the_date( 'c' ) ),
esc_html( get_the_date() ),
esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
esc_attr( sprintf( __( 'View all posts by %s', 'slqblogs' ), get_the_author() ) ),
esc_html( get_the_author() ),
esc_attr( get_the_modified_date() )
);
}
endif;
所以这是我在署名范围 class 中遇到值的地方:
<span class="byline"> <span class="author vcard"><a class="url fn n" href="%5$s" title="%6$s" rel="author">%7$s</a></span></span>
只是不知道如何访问 %5$s
或其他 keywords/expressions 或其他任何值。
老实说,这种 Wordpress PHP 脚本完全超出了我的深度和舒适范围。如有任何帮助,我们将不胜感激。
它用于 sprintf/printf 格式描述符中的 "swapping" 个参数,即您可以按照您喜欢的任何顺序访问参数,例如
<?php
$p1 = 'a';
$p2 = 'b';
$p3 = 'c';
$p4 = 'd';
printf('%1$s %2$s %3$s %4$s'."\r\n", $p1, $p2, $p3, $p4);
printf('%4$s %3$s %2$s %1$s'."\r\n", $p1, $p2, $p3, $p4);
打印
a b c d
d c b a
即使两个 printf
的参数 p1-p4 的传递顺序相同。
另见:http://docs.php.net/manual/en/function.sprintf.php#example-5403
<?php printf('%1$s, %2$s, %3$s, %4$s', "1 value", "2 value", "3 value", "4 value"); ?>
输出看起来像
1 value, 2 value, 3 value, 4 value
我目前正在将 Wordpress 多站点编辑为 remove/repair 损坏的 link。索引页面在主页上以磁贴的形式列出了所有子博客中的所有帖子。应用于作者姓名的 link 不正确。
我已经找到它,在 content-single.php 页面中生成了一些代码来检索数据,值为 %5$s
我认为它可能是正则表达式,但我无法确认。该值看起来更像是用于从数据库中检索变量的 shorthand 表达式。进行了 google 搜索,但仍然找不到。我看到了这个手抄本页面 https://codex.wordpress.org/Function_Reference/get_the_category_list
我仍然无法理解这些值的含义。它们是什么意思?
所以我对主题中的 PHP 文件进行了追溯。首先,我在 'content-single.php' 页面中看到了这个函数,它生成了包含错误 link 的内容 <?php slqblogs_posted_on(); ?>
<div class="entry-meta">
<?php slqblogs_posted_on(); ?>
<span class="sep">|</span>
<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style ">
<a href="http://www.addthis.com/bookmark.php?v=250&pubid=ra-4f836b545f19f0e0" class="addthis_button_compact">Share</a>
</div>
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4f836b545f19f0e0"></script>
<!-- AddThis Button END -->
<div class="clear"></div>
</div><!-- .entry-meta -->
很明显,我查看了 'theme-functions.php' 文件,我可以看到该函数的所有优点:
if ( ! function_exists( 'slqblogs_posted_on' ) ) :
/**
* Prints HTML with meta information for the current post-date/time and author.
* Create your own slqblogs_posted_on to override in a child theme
*
* @since slqblogs 1.2
*/
function slqblogs_posted_on() {
printf( __( '<span class="posted-on"><a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date published" datetime="%3$s" pubdate>%4$s</time><time class="updated">%8$s</time></a></span><span class="sep">|</span><span class="byline"> <span class="author vcard"><a class="url fn n" href="%5$s" title="%6$s" rel="author">%7$s</a></span></span>', 'slqblogs' ),
esc_url( get_permalink() ),
esc_attr( get_the_time() ),
esc_attr( get_the_date( 'c' ) ),
esc_html( get_the_date() ),
esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
esc_attr( sprintf( __( 'View all posts by %s', 'slqblogs' ), get_the_author() ) ),
esc_html( get_the_author() ),
esc_attr( get_the_modified_date() )
);
}
endif;
所以这是我在署名范围 class 中遇到值的地方:
<span class="byline"> <span class="author vcard"><a class="url fn n" href="%5$s" title="%6$s" rel="author">%7$s</a></span></span>
只是不知道如何访问 %5$s
或其他 keywords/expressions 或其他任何值。
老实说,这种 Wordpress PHP 脚本完全超出了我的深度和舒适范围。如有任何帮助,我们将不胜感激。
它用于 sprintf/printf 格式描述符中的 "swapping" 个参数,即您可以按照您喜欢的任何顺序访问参数,例如
<?php
$p1 = 'a';
$p2 = 'b';
$p3 = 'c';
$p4 = 'd';
printf('%1$s %2$s %3$s %4$s'."\r\n", $p1, $p2, $p3, $p4);
printf('%4$s %3$s %2$s %1$s'."\r\n", $p1, $p2, $p3, $p4);
打印
a b c d
d c b a
即使两个 printf
的参数 p1-p4 的传递顺序相同。
另见:http://docs.php.net/manual/en/function.sprintf.php#example-5403
<?php printf('%1$s, %2$s, %3$s, %4$s', "1 value", "2 value", "3 value", "4 value"); ?>
输出看起来像
1 value, 2 value, 3 value, 4 value