标题在《21世纪11》中,页面如何无法正常工作

时间:2012-04-04 作者:tjrocks

我想了解《二十一世纪》的标题页是如何工作的。。sprintf(\\uuu(\'Page%s\',\'twententen\'),最大($paged,$Page));

我不理解上面的部分,因为在函数中,参数是$text和$domain什么是$domain以及%s print的编号如何。下面是完整的标题代码谢谢

<title><?php
/*
 * Print the <title> tag based on what is being viewed.
 */
global $page, $paged;

wp_title( \'|\', true, \'right\' );

// Add the blog name.
bloginfo( \'name\' );

// Add the blog description for the home/front page.
$site_description = get_bloginfo( \'description\', \'display\' );
if ( $site_description && ( is_home() || is_front_page() ) )
    echo " | $site_description";

// Add a page number if necessary:
if ( $paged >= 2 || $page >= 2 )
    echo \' | \' . sprintf( __( \'Page %s\', \'twentyten\' ), max( $paged, $page ) );

?></title>

1 个回复
最合适的回答,由SO网友:turbonerd 整理而成

好吧,那么。。。

sprintf( __( \'Page %s\', \'twentyten\' ), max( $paged, $page ) );

首先-sprintf. 返回aformatted string, 使用变量和类型说明符显示信息。

例如

$house = "Mansion";
$house_number = 49;
sprintf( \'My house is a %s and its number is %d\', $house, $house_number );
将打印My house is a Mansion and its number is 49.

正如您在《2011》主题中所看到的,您可以向这些变量添加函数:

$house = "Mansion";
$house_number = 49;
sprintf( \'My house is a %s and its number is %d\', strtolower( $house ), $house_number );
将打印My house is a mansion and its number is 49.

现在,在您想要理解的代码中,有两个变量:pagedpage, 哪些是global variables 由其他WordPress脚本定义。其中一个变量将返回一组结果中的当前页码,即如果您位于结果的第五页,pagedpage 将是5.

然而,我认为过去在使用这些变量之间存在一些差异。这就是为什么max 正在使用函数-主题将查看哪些变量实际已设置,然后显示它。max 只需查看一个值数组并返回最大值。在这种情况下,将只设置其中一个全局变量,因此max 函数是一种快速而简单的方法,可以查看正在使用哪个函数。

sprintf( __( \'Page %s\', \'twentyten\' ), max( $paged, $page ) );

%s 在此sprintf函数中,表示max( $paged, $page ) 应显示为字符串。

如果$paged 当时是4岁,$page 不会设置,因此该行将显示Page 4. 或者,如果$page 正在使用中,$paged 不会被设置。

这个__( ) 函数是的一部分WordPress localization. 基本上,它允许编写网页的翻译。此特定功能returns 翻译后的字符串;这个_e( ) 函数实际上与之相呼应。这个twentyten 此参数的字符串是$domain. 我不会再详细讨论这个问题,因为我自己并不完全理解它。

如果删除本地化功能,您将看到该功能的工作方式完全相同:

sprintf( \'Page %s\', max( $paged, $page ) );

<希望这能有所帮助-抱歉,我的解释太“琐碎”了。

结束