プラグインqTranslateを使用しています。
$post = get_post(id);
$mail_title = $post ->post_title;
$mail_text = $post ->post_content;
としたところ、全言語のタイトル、コンテンツ内容を取得してしまいます。
※get_the_titleは、そのとき表示していた言語の情報を取得します。
$post->post_title や $post->post_content ではWordPressやプラグインのフィルター(処理)を通っていないので、そのようになります。(データベースに保存されている情報そのものを表示しているイメージ)
手間がかかっても get_posts() 使って取得して、そのあとのループの中で
変数などに代入してください。
http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_posts
回答ありがとうございます。
以下のようなコードを記述したのですが、page_id=5の内容ではなく、現在のページの内容を取得してしまいます。
何がおかしいかわかりますか?
wp_reset_query();
$args = array(
'page_id' => '5',
'post_type' => 'page',
'meta_value' => 'Yes',
'posts_per_page' => 1
);
get_posts($args);
while (have_posts()) : the_post();
$mail_title = get_the_title();
$mail_text = get_the_content();
endwhile;
Codex読みました?
コードの書き方が違います。
<?php
$args = array(); // 略
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post );
// ここで処理
endforeach;
wp_reset_postdata();
?>
すみません。
色々ためしてみたのですが、全言語のタイトル、コンテンツ内容を取得してしまいます。
qTranslateの仕様も分かっていないので、質問&回答が難しいですか?