サポート » プラグイン » ktai style 「メニュー」の並び順・表示内容について

  • 解決済 hige

    (@hige)


    御世話様です。

    表題の件ですが、共通テーマで「redportal」を使用し、自分なりに表示内容を変更していますが、以下の問題が発生し質問させて頂きました。

    サイト下部に表示されるメニュー項目を
    ⑤カテゴリー
    ⑥アーカイブ
    ⑦最新コメント
    ⑧タグ
    ⑨ページ
    ○サイトトップ
    (数字のゼロが表示されるが、0のボタンを押してもアクセスキーが反応しない)
    にしたいのでですが、どんなに頑張っても
    ⑤サイトトップ
    ⑥カテゴリー
    ⑦アーカイブ
    ⑧最新コメント
    ⑨タグ
    ○ページ

    (↑この上の点も消したいのに消せない)
    くやしいぃです。
    どなたかご教授ください。

    ちなみに以下に部分ソースを張ります。

    <dl><dt>
    <?php $count = 5;
    ks_ordered_link($count++, 10, ks_blogurl(false), get_option(‘show_on_front’) == ‘page’ ?
    __(‘Front Page’, ‘ktai_style’) :
    __(‘New Posts’, ‘ktai_style’));?>
    </dt><dt>

    <?php
    ks_ordered_link($count++, 10, ks_blogurl(false) . ‘?menu=cats’, __(‘Categories’)); ?></dt><dt>
    <?php
    ks_ordered_link($count++, 10, ks_blogurl(false) . ‘?menu=months’, __(‘Archives’)); ?></dt><dt>
    <?php
    ks_ordered_link($count++, 10, ks_blogurl(false) . ‘?menu=comments’, ks_option(‘ks_separate_comments’) ? __(‘Recent Comments/Pings’, ‘ktai_style’) : __(‘Recent Comments’, ‘ktai_style’)); ?></dt><dt>
    <?php
    ks_ordered_link($count++, 10, ks_blogurl(false) . ‘?menu=tags’, __(‘Tags’)); ?></dt><dt>
    <?php
    ks_ordered_link($count++, 10, ks_blogurl(false) . ‘?menu=pages’, __(‘Pages’)); ?></dt>
    <?php if (function_exists(‘get_tags’)) {
    _e(‘, ‘, ‘redportal’); ?>

    <?php
    } ?></dt><dt>

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    プラグイン作者です。

    まず、前提知識として ks_ordered_link() がそれぞれのメニュー項目に対応します。そして、WordPress のローカライズ機構を利用して「カテゴリー」という日本語をそのまま使うのではなく、__('Categories') という翻訳関数を利用して「カテゴリー」という文字列を出しています。中黒 (・) は_e(', ', 'redportal'); ?>で出力しているので、これを消せばなくなります。

    PHP コードのどれがどの出力に対応しているのか、よく見てみてください。これが分かると、最初にカテゴリーをもってくるならば、以下のようになります。

    <?php $count = 5; ?>
    <dl>
    <dt><?php ks_ordered_link($count++, 10, ks_blogurl(false) . '?menu=cats', __('Categories')); ?></dt><dt>
    (数字のゼロが表示されるが、0のボタンを押してもアクセスキーが反応しない)

    これをやるならば、数字の0 (を示す絵文字) を ks_pict_number(0) で出力して、ks_ordered_link() の第1引数は ” (シングルクオートx2、空文字列) にしてください。つまり、

    <dt><?php ks_pict_number(0); ks_ordered_link('', 10, ks_blogurl(false), get_option('show_on_front') == 'page' ?
    __('Front Page', 'ktai_style') :
    __('New Posts', 'ktai_style')); ?></dt>

    という感じです。ただし、Ktai Style 1.47 以前を使っているならば、ks_ordered_link() の第1引数に ” を入れても□ (四角) が出てしまいますので、Ktai Style 1.60 を使ってください。
    Ktai Style 1.60 以降が使えない場合は手作業で a 要素を組み立てるしかないです。

    <dt><?php ks_pict_number(0); ?><a href="<?php ks_blogurl(); ?>"><?php echo get_option('show_on_front') == 'page' ?
    __('Front Page', 'ktai_style') :
    __('New Posts', 'ktai_style')); ?></a></dt>

    (注意) __() 関数で翻訳される文字列は固定で HTML ではないことが既知なので wp_specialchars() でのエスケープは省略しています。現在のカテゴリー名など、可変の文字列を使う場合は wp_specialchars() もしくは attribute_escape() でのエスケープが必要です。

    トピック投稿者 hige

    (@hige)

    作者様
    大変便利なプラグイン、本当に感謝です。
    そして、回答ありがとうございます。

    教えて頂いた通り作業してみました。
    (内容を完璧に理解するには至ってません)
    以下が部分ソースです。

    <?php $count = 5; ?>
    <dl><dt>
    <?php ks_pict_number(0); ks_ordered_link(”, 10, ks_blogurl(false), get_option(‘show_on_front’) == ‘page’ ?
    __(‘Front Page’, ‘ktai_style’) :
    __(‘New Posts’, ‘ktai_style’)); ?>
    </dt></dl>
    <?php
    ks_ordered_link($count++, 10, ks_blogurl(false) . ‘?menu=cats’, __(‘Categories’)); ?></dt><dt>
    <?php
    ks_ordered_link($count++, 10, ks_blogurl(false) . ‘?menu=months’, __(‘Archives’)); ?></dt><dt>
    <?php
    ks_ordered_link($count++, 10, ks_blogurl(false) . ‘?menu=comments’, ks_option(‘ks_separate_comments’) ? __(‘Recent Comments/Pings’, ‘ktai_style’) : __(‘Recent Comments’, ‘ktai_style’)); ?></dt><dt>
    <?php
    ks_ordered_link($count++, 10, ks_blogurl(false) . ‘?menu=tags’, __(‘Tags’)); ?></dt><dt>
    <?php
    ks_ordered_link($count++, 10, ks_blogurl(false) . ‘?menu=pages’, __(‘Pages’)); ?></dt>
    <?php if (function_exists(‘get_tags’)) {_e(‘ ‘); ?>
    <?php
    } ?></dt><dt>

    おかげ様で「・」が表示される問題は解決しましたが、
    □サイトトップ
    ⑤カテゴリー
    ⑥アーカイブ …
    (以下は希望通り!)
    と、ソースを見てもなぜサイトトップが一番先頭にあるのかさっぱりわからない状況です。

    回答を十分に理解できてないことで再度同じ質問をしていたらすいません。
    サイトトップを一番下に持っていき、○(ゼロ)を表示するにはどうしたらいいでしょうか?

    ご教授お願いします。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    最低限、以下の2つについては理解してください。

    まず、前提知識として ks_ordered_link() がそれぞれのメニュー項目に対応します。そして、WordPress のローカライズ機構を利用して「カテゴリー」という日本語をそのまま使うのではなく、__(‘Categories’) という翻訳関数を利用して「カテゴリー」という文字列を出しています。

    そして、原則として、ソースに記述した順序通りに表示されることも重要です。

    と、ソースを見てもなぜサイトトップが一番先頭にあるのかさっぱりわからない状況です。

    「サイトトップ」が最初に出るということは、それが最初に書かれているからです。$count++ によるカウントアップは、単に表示される数字を制御しているだけで、表示の順序はあくまで「ソースに書いた順番」です。

    あと、以下の部分は変です。これは、get_tags() テンプレートタグがあるときのみ「タグ」のメニューを出すための if 文ですが、中身がなくなっています。(WordPress 2.2 以前では「タグ」機能がなくエラーになるため、そのエラー回避のため if による条件分岐を行なっています。

    <?php if (function_exists('get_tags')) {_e(' '); ?>
    <?php
    } ?>

    本来、if 文の中には `<?php
    ks_ordered_link($count++, 10, ks_blogurl(false) . ‘?menu=tags’, __(‘Tags’)); ?>` があるべきで、この項目を移動させるならば、前後の if ブロックもまとめて移動させてください。もしくは、WordPress 2.3 以降でしか使わないことが分かっているならば、if 文での分岐をやめてしまっても構いません。

    PHP による HTML 出力は、<?php タグと ?> タグによる、PHP モードと HTML モードの切り替えがあって、可読性が少し低いので、初心者の方には分かりにくいかもしれません。
    あと、Ktai Style 独特の問題として、余分なスペースやタグが出ないように、php タグの書き方が通常とは違っていることも、読みにくい理由かもしれません。これは仕様ですのでご容赦ください。

    トピック投稿者 hige

    (@hige)

    ご回答ありがとうございます。

    <dl><dt>
    <?php ks_pict_number(0); ks_ordered_link(”, 10, ks_blogurl(false), get_option(‘show_on_front’) == ‘page’ ?
    __(‘Front Page’, ‘ktai_style’) :
    __(‘New Posts’, ‘ktai_style’)); ?>
    </dt></dl>
    これがサイトトップの表示になっていたわけですね。
    いろいろと書いてあるので、下に続くメニューの要素となっているのかと思っていました。

    最終的に
    <?php $count = 5; ?>
    <?php
    ks_ordered_link($count++, 10, ks_blogurl(false) . ‘?menu=cats’, __(‘Categories’)); ?></dt><dt>
    <?php
    ks_ordered_link($count++, 10, ks_blogurl(false) . ‘?menu=months’, __(‘Archives’)); ?></dt><dt>
    <?php
    ks_ordered_link($count++, 10, ks_blogurl(false) . ‘?menu=comments’, ks_option(‘ks_separate_comments’) ? __(‘Recent Comments/Pings’, ‘ktai_style’) : __(‘Recent Comments’, ‘ktai_style’)); ?></dt><dt>
    <?php
    ks_ordered_link($count++, 10, ks_blogurl(false) . ‘?menu=tags’, __(‘Tags’)); ?></dt><dt>
    <?php
    ks_ordered_link($count++, 10, ks_blogurl(false) . ‘?menu=pages’, __(‘Pages’)); ?></dt>
    <dl><dt>
    <?php ks_pict_number(0); ks_ordered_link(”, 10, ks_blogurl(false), get_option(‘show_on_front’) == ‘page’ ?
    __(‘Front Page’, ‘ktai_style’) :
    __(‘New Posts’, ‘ktai_style’)); ?>
    </dt></dl>
    としました。
    バージョンは1.60を使っているのですが、残念ながら
    □サイトトップと表示されます。
    教えて頂いた別の方法ですと、footer自体が表示されないため、あきらめることにしました。

    作者様
    親切、丁寧に教えて頂きありがとうございました。
    少しずつ勉強し、理解していこうと思います。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    バージョンは1.60を使っているのですが、残念ながら
    □サイトトップと表示されます。

    ごめんなさい。ks_ordered_link() で絵文字数字を抑制する機能は Ktai Style 1.61 からの実装でした。

    正式リリースまで待てない場合は、a 要素を直接書いてしまってください。a 要素をそのまま書く方法は、Ktai Style のバージョンによらず使えますので、1.61 が出ても変更する必要はありません。(ks_ordered_link() はアクセスキー対応の絵文字数字を出すのを楽にするためのテンプレートタグですので)。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「ktai style 「メニュー」の並び順・表示内容について」には新たに返信することはできません。