我正在用一个定制的主题修改我的个人博客,并在qtranslate的帮助下使其双语化。当涉及到自动生成短链接(出于分析原因提供)时,我已经停了下来。
到目前为止,我得到了以下代码,基于Kovshenin\'s goo.gl plugin, 查询google shorten API:
function googl_shortlink($url, $post_id) {
global $post;
if (is_404())
return;
if (!$post_id && $post) $post_id = $post->ID;
if ($post->post_status != \'publish\')
return "";
$shortlink = get_post_meta($post_id, \'_googl_shortlink\', true);
if ($shortlink)
return $shortlink;
$permalink = get_permalink($post_id);
$http = new WP_Http();
$headers = array(\'Content-Type\' => \'application/json\');
$result = $http->request(\'https://www.googleapis.com/urlshortener/v1/url\', array( \'method\' => \'POST\', \'body\' => \'{"longUrl": "\' . $permalink . \'"}\', \'headers\' => $headers));
$result = json_decode($result[\'body\']);
$shortlink = $result->id;
if ($shortlink) {
add_post_meta($post_id, \'_googl_shortlink\', $shortlink, true);
return $shortlink;
} else {
return $url;
}
}
add_filter(\'get_shortlink\', \'googl_shortlink\', 9, 2);
并在“我的帖子”面板中添加了一个漂亮的列,其中包含指向分析页面的链接:function googl_post_columns($columns) {
$columns[\'shortlink\'] = \'Shortlink\';
return $columns;
}
function googl_custom_columns($column) {
global $post;
if (\'shortlink\' == $column) {
$shorturl = wp_get_shortlink();
$shorturl_caption = str_replace(\'http://\', \'\', $shorturl);
$shorturl_info = str_replace(\'goo.gl/\', \'goo.gl/info/\', $shorturl);
echo "<a href=\'{$shorturl}\'>{$shorturl_caption}</a> (<a href=\'{$shorturl_info}\'>info</a>)";
}
}
add_action(\'manage_posts_custom_column\', \'googl_custom_columns\');
add_filter(\'manage_edit-post_columns\', \'googl_post_columns\');
问题是:上面的代码片段非常适合于单一语言环境,但当涉及双语时,它只生成默认语言的短链接。问题是:我怎样才能让它也为第二语言生成链接?我认为很明显,我需要将它们保存在单独的元键中,但我找不到一种方法使其看起来比默认语言更远。