言語切替 qTranslate-X

言語切替リンク

管理者画面の左ナビにある「外観>ウィジェット」で言語切替ボタンを設置できます。
また、ウィジェットを利用しない場合は下記コードで表示が可能です。

<?php 
	$current_url = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
?>

<li class="lang-ja">
	<a href="<?php echo qtranxf_convertURL($current_url, 'ja', '', true);?>" hreflang="ja" title="日本語" class="qtranxs_image qtranxs_image_ja">
		<img src="<?php echo plugins_url('qtranslate-x'); ?>/flags/jp.png" alt="日本語" />
	</a>
</li>
<li class="lang-en">
	<a href="<?php echo qtranxf_convertURL($current_url, 'en','',  true);?>" hreflang="en" title="English" class="qtranxs_image qtranxs_image_en">
		<img src="<?php echo plugins_url('qtranslate-x'); ?>/flags/us.png" alt="English" />
	</a>
</li>

条件分岐

英語かそれ以外で分岐させる場合は下記の通りです。

<?php if(qtranxf_getLanguage()=='en'): ?>
	English
<?php else:?>
	Other
<?php endif;?>

日本語の状態では「foo」、英語の状態で「bar」と表示させる。

[:ja]foo[:en]bar[:]

Retinaディスプレイ用(日本語のみ)

<?php if(qtranxf_getLanguage()=='en'): ?>
    <div class="cat-notes"><img src="<?php bloginfo('template_url'); ?>/images/cat/<?php echo $ancCateSlug; ?>-en.png" /></div>
<?php else:?>
    <div class="cat-notes"><img src="<?php bloginfo('template_url'); ?>/images/cat-notes/<?php echo $ancCateSlug; ?>.png" srcset="<?php bloginfo('template_url'); ?>/images/cat/<?php echo $ancCateSlug; ?>.png 1x,<?php bloginfo('template_url'); ?>/images/cat/<?php echo $ancCateSlug; ?>@2x.png 2x" /></div>
<?php endif;?>

このサンプルでは、カテゴリスラッグ名を自動で割り当てています。
Retina用に元となる画像の2倍サイズの画像を「カテゴリスラッグ名@2x.png」として保存します。

rssにカスタムフィールドの値も入れたい!

要は出力されるRSSをカスタマイズしたい!
調べてみたけどサッパリわかりませんでした、勉強不足です!

先ずはfeedを出力させる側のwpにカスタマイズ

フォーラムの方ではどちらも解決されていたようですが頭の悪い僕にはサッパリでしたので
つまりテンプレートを用意すればいいんじゃね?と思い
http://wordpress.org/extend/plugins/feed-template-customize/
↑のプラグインをインストール
wp-include内のfeed-rss2.phpをテーマフォルダにコピー
コピーしたファイルをwpのカスタマイズ時と同じように変更
下記のようにphpファイルの中身はループ分のみ、というか表示させたい部分のみで構いません
カスタムフィールドも入れられるし、柔軟性高いね!

<table class="parent1">
  <tr>
    <th scope="col" class="child1">セミナー名・詳細</th>
    <th scope="col" class="child2">日 時</th>
    <th scope="col" class="child3">開 場</th>
    <th scope="col" class="child4">備 考</th>
  </tr>
  <?php
  $posts = get_posts('numberposts=0');
      global $post;
  ?>
  <?php if($posts): foreach($posts as $post): setup_postdata($post); ?>
  <tr>
    <td class="child1" id="post<?php the_ID(); ?>">
      <dl>
        <dt><?php the_title(); ?></dt>
        <dd><?php the_content(); ?></dd>
      </dl>
    </td>
    <td class="child2"><?php echo nl2br(post_custom('date')); ?></td>
    <td class="child3"><?php echo nl2br(post_custom('hall')); ?></td>
    <td class="child4"><?php echo nl2br(post_custom('remarks')); ?></td>
  </tr>
  <?php endforeach; endif;?>
</table>

あたりまえだけど文字コードはちゃんとUTF-8で保存しないと全力で文字化けします

フィードにアクセスしたらちゃんと表示されてるっ!

次に読み込み

別ドメインへのアクセスはjQueryではできないのでphpで
埋め込みたい場所に下記を記述

<?php
  $feed = file_get_contents("表示させたいページのURL");
  print $feed;
?>

今回は「表示させたいページのURL」はwpのfeedになるから
「http://ドメイン/wp/category/カテゴリー名/feed」とかになるよね!
ページをphpにて保存!もちろんutf-8で!

無事に表示されました

なんかfeedとかrssっぽくないけど・・・。

ちゃんと理解してfunction.phpなんかを編集できる人は本当にすごいな、と。
僕はまだまだ勉強不足だなーと実感しました。

参考にさせて頂いたフォーラムの記事

http://ja.forums.wordpress.org/topic/3563?replies=5
http://ja.forums.wordpress.org/topic/7957

使用させて頂いたプラグイン

Feed Template Customize

参考にさせて頂いたプラグイン実装方法

Feed Template Customize | dogmap.jp

Custom Field Gui 3

wordpressのカスタムフィールドはプラグインを利用して導入するのが楽です。
「かたつむりくんのWWW」より:

カスタムフィールドの改行

カスタムフィールドをテンプレートに適用する際に

<?php echo post_custom('キー')?>

上記のように記述する箇所を

<?php echo nl2br(post_custom('キー')); ?>

このように記述することで、改行も反映されます

Google Mapと併用

<?php $imagefield = get_imagefield('detail1image');
$attachment = get_attachment_object($imagefield['id']);
echo '<image src="' . $attachment['url'] . '" alt="' . $attachment['title'] . '" /><br />' . $attachment['content'] ;
?>

カスタムフィールドでアップロードした画像を表示し、その下にアップロード時に入力した画像の説明を表示

<a href="javascript:;" onclick="window.open('http://maps.google.co.jp/maps?q='+encodeURI('<?php echo post_custom('pref')?>'));return false;" target="_blank">地図はこちら</a>

カスタムフィールドキー「pref」に入力した住所からGoogle mapへのリンクを自動で生成