私は以前、私のfunctions.phpで次のようなスクリプトを使って各投稿の日付と時刻の番号を(Khmerのような他の言語の番号と日付のシステムに)変更することができました。
function KhmerNumDate ($text) {
$text = str_replace('1', '១', $text);
$text = str_replace('2', '២', $text);
$text = str_replace('3', '៣', $text);
$text = str_replace('4', '៤', $text);
$text = str_replace('5', '៥', $text);
$text = str_replace('6', '៦', $text);
$text = str_replace('7', '៧', $text);
$text = str_replace('8', '៨', $text);
$text = str_replace('9', '៩', $text);
$text = str_replace('0', '០', $text);
return $text;
}
add_filter('date', 'KhmerNumDate');
add_filter('the_date', 'KhmerNumDate');
add_filter('the_time', 'KhmerNumDate');
しかし、今では機能していません - 私のコードは良いですか?使用しているテーマによってコードが異なりますか(現在はTwenty-12の修正された子テーマを使用しています)。
それは、テーマTwenty Twelveの機能の仕方(翻訳を容易にするための努力のせい)であることがわかりました。
Twenty 12の投稿の日付は、functions.phpのtwentytwelve_entry_meta()
という関数によって作成されます。
そのため、日付の数字を置き換えたり翻訳したりするために、twentytwelve_entry_meta()
関数の$date=
を含む行を探します(またはできれば、twentytwelve_entry_meta()
関数を子のfunctions.phpに複製します)。
$date = sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s" pubdate>%4$s</time></a>',
esc_url( get_permalink() ),
esc_attr( get_the_time() ),
esc_attr( get_the_date( 'c' ) ),
esc_html( get_the_date() )
);
//my added code - the_curlang() is used with the xili-language plugin, it returns the current language of the page
$languagedate = the_curlang();
if ( $languagedate == 'km_kh' ) {
$date = str_replace('1', '១', $date);
$date = str_replace('2', '២', $date);
$date = str_replace('3', '៣', $date);
$date = str_replace('4', '៤', $date);
$date = str_replace('5', '៥', $date);
$date = str_replace('6', '៦', $date);
$date = str_replace('7', '៧', $date);
$date = str_replace('8', '៨', $date);
$date = str_replace('9', '៩', $date);
$date = str_replace('0', '០', $date);
}
それからすべてが素晴らしく見えます!
私はあまりプログラマーではないので、私のコードは最良の選択肢ではないかもしれませんが、少なくともそれはうまくいきます。
この方法を試してください。
Date、the_date、the_timeをget_date、get_the_date、get_the_timeに変更します。
function KhmerNumDate ($text) {
$text = str_replace('1', '១', $text);
$text = str_replace('2', '២', $text);
$text = str_replace('3', '៣', $text);
$text = str_replace('4', '៤', $text);
$text = str_replace('5', '៥', $text);
$text = str_replace('6', '៦', $text);
$text = str_replace('7', '៧', $text);
$text = str_replace('8', '៨', $text);
$text = str_replace('9', '៩', $text);
$text = str_replace('0', '០', $text);
return $text;
}
add_filter('get_date', 'KhmerNumDate');
add_filter('get_the_date', 'KhmerNumDate');
add_filter('get_the_time', 'KhmerNumDate');
特定のニーズに合わせてWordpress組み込み関数を使用することをお勧めします。これは date_i18n($date_format, $time, $gmt)
です。 php date()
フォーマット を渡すだけでtimestamp
とWordpressはあなたの言語で日付を表示します(wp-config.php
で定義された言語)。
コーデックスページからの例:
echo date_i18n(get_option('date_format') ,strtotime("11/15-1976"));