0

書き留めるのはかなり難しいので、できるだけ明確にしようと思います... 状況: WordPress での作業中に問題が発生しました。WPML (多言語サイト) プラグインをインストールしましたが、問題なく動作しますが、問題は、ホームページ テキストやホームページ ボックスなどのカスタム投稿を持つこのテーマを使用していて、ホームページに表示される 2 つの投稿が翻訳される可能性がないことです。コンテンツを他の言語に変換して、ホームページのテキストとボックスを異なる言語で表示します (WPML プラグインのその部分は表示されません)。ホームページ テキストとホームページ ボックス、これら 2 つは wordpress の左側に表示されます。これは、リンク、ページ、またはコメントと同様に、メニューの一部です...

私はこれを解決する1つの方法を思いつきました。

これらのカスタム投稿をさらにいくつか作成しました。今私が持っています:

Homepage Text (home_text) 
Homepage Boxes (home_boxes)

Homepage Text English (home_text_en)
Homepage Boxes English (home_boxes_en)

Homepage Text Russian (home_text_ru)
Homepage Boxes Russian (home_boxes_ru)

これら 2 つのカスタム投稿の index.php には 2 つのコードがあります。私はあなたに1つを見せます:

<div id="homepage-text">
<?php query_posts(array(
        'post_type'=>'home_text',
        'orderby' => 'ASC'
        ));
?>
<?php if ( have_posts() ) while ( have_posts() ) : the_post();?>
<h2><?php the_title() ?></h2>
<?php the_content(); ?>
<?php endwhile; ?>
</div><!-- /homepage-text -->

この後、ホームページボックス用の同様のコードがあります...

解決方法: 次のようなコードを記述します。「送信元のアドレスがhttp://www.website.euの場合 - home_text と home_boxes であるホームページ テキストとボックスを使用します。http://www.website . com/EN - home_text_en などを使用してください...私の言っていることを理解していただければ幸いです..

これをすべて読むのに十分な時間があり、とても親切で、私の言葉をphpに変換するコードを書いてくれる人はいますか?

それはどのように見えるべきかについての私の推測ですが、私は条件を書くのに苦労しています.

    if (condition that it's the main language directory)
{
register_post_type( 'home_text',
array(
  'labels' => array(
    'name' => __( 'Homepage Text' ),
    'singular_name' => __( 'Homepage Text' )
  ),
  'public' => true,
  'supports' => array('title','editor')

)
);
}
elseif (condition that it's english language directory .com/en)
{
register_post_type( 'home_text_en',
array(
  'labels' => array(
    'name' => __( 'Homepage Text English' ),
    'singular_name' => __( 'Homepage Text English' )
  ),
  'public' => true,
  'supports' => array('title','editor')

)
);
}
else
{
register_post_type( 'home_text_ru',
array(
  'labels' => array(
    'name' => __( 'Homepage Text Russian' ),
    'singular_name' => __( 'Homepage Text Russian' )
  ),
  'public' => true,
  'supports' => array('title','editor')

  )
 );
 }

前もって感謝します。

ドマンタス。

4

1 に答える 1

1

WordPress http://codex.wordpress.org/Function_Reference/wp_get_refererのページリファラー機能を使用して、次のようなことを行うことができます。

$page_referer_url = wp_get_referer();
if(strpos($page_referer_url,'.com/en')!==FALSE) { // Check if the text '.com/en' is part of the referer URL
    // code for english
}
else {
    // code for non english
}

strpos()がどのように機能するかについては、http://php.net/manual/en/function.strpos.phpを参照してください

于 2013-01-18T00:01:53.153 に答える