WordPressでブログを始めてからずっとなんとかならないかなぁ。
と思っていたことがあります。
それは、
パンくずリストが複数のカテゴリを選択して投稿した際には、
英数字(A~Z)から優先されて日本語(五十音順)の順になってしまい、
思っていたカテゴリのパンくずが表示されないです。
これまでもいろいろと試してみましたが、
これが今のところ一番かなぁ。
と思うので備忘録として残しておきたいと思います。
Loading…
車メンテナンス・カスタマイズ・点検・修理、WordPressカスタマイズ、PC設定、車、時事ネタ、情勢、日々の出来事など津々浦々に綴っていきます。
WordPress カスタマイズ カスタマイズ 伝えたいこと 備忘録
所要時間目安:約7分
この記事は2016年4月2日のものです。現在は状況が異なる可能性がありますのでご注意ください。
WordPress カスタマイズ カスタマイズ 伝えたいこと 備忘録
+本日の人気記事TOP10+
WordPressでブログを始めてからずっとなんとかならないかなぁ。
と思っていたことがあります。
それは、
パンくずリストが複数のカテゴリを選択して投稿した際には、
英数字(A~Z)から優先されて日本語(五十音順)の順になってしまい、
思っていたカテゴリのパンくずが表示されないです。
これまでもいろいろと試してみましたが、
これが今のところ一番かなぁ。
と思うので備忘録として残しておきたいと思います。
アドセンス336pxPC閲覧記事下表示1つ目コード
+これまでによく読まれている記事一覧クリックでOPEN+
function.php内に以下のコードを記載します。
一気に書き込みます。
(上記参考サイトさんのコードそのものだとliやulがあるので出力後に縦表示になってしまう為、ul、liを省いています。)
//パンくずリスト表示対象カテゴリをカスタムフィールドに追加追加するコードここから
add_action('admin_menu', 'add_breadcrumbs_category_meta_box');
add_action('save_post', 'save_breadcrumbs_category_custom_fields');
// パンくずリスト用メタボックスの追加
function add_breadcrumbs_category_meta_box() {
add_meta_box( 'my_sectionid4', 'パンくずリスト用カテゴリ', 'breadcrumbs_category_custom_fields', 'post', 'advanced' );
}
// パンくずリストカテゴリ選択用カスタムフィールドの入力フォーム作成と値の設定
function breadcrumbs_category_custom_fields() {
global $post;
$options = get_the_category($post->ID);
$n = count($options);
$radio_field = get_post_meta($post->ID,'_organizer_breadcrumbs_category',true);
for ($i=0; $i<$n; $i++) {
$option = $options[$i];
if ($option -> cat_ID == $radio_field) {
echo '<input type="radio" name="_organizer_breadcrumbs_category" value="'.esc_html($option->cat_ID).'" checked /> '.$option->cat_name.' ';
} else {
echo '<input type="radio" name="_organizer_breadcrumbs_category" value="'.esc_html($option->cat_ID).'" /> '.$option->cat_name.' ';
}
}
}
// パンくずリスト用カテゴリのカスタムフィールドの保存
function save_breadcrumbs_category_custom_fields( $post_id ) {
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id;
$meta_key = '_organizer_breadcrumbs_category';
$meta_value_new = $_POST[$meta_key];
$meta_value_current = get_post_meta($post_id, $meta_key, true);
$cats = get_the_category($post_id);
if(!empty($cats)){
$meta_value_default = $cats[0]->cat_ID;
}
if(!empty($meta_value_current) ){
update_post_meta($post_id, $meta_key, $meta_value_new);
}else{
if(!empty($meta_value_new)){
update_post_meta($post_id, $meta_key, $meta_value_new);
}else{
if(!empty($meta_value_default)){
update_post_meta($post_id, $meta_key, $meta_value_default);
}
}
}
}
//パンくずリスト表示対象カテゴリをカスタムフィールドに追加追加するコードここまで
//パンくずリスト関数
//パンくずリストを出力する関数
function breadcrumb(){
global $post;
$str ='';
if(!is_home()&&!is_admin()){
$str.= '<div id="breadcrumb" class="clearfix">';
$str.= '';
$str.= '<itemscope itemtype="https://data-vocabulary.org/Breadcrumb"><a itemprop="url" href="'. home_url() .'/"><span itemprop="title"><strong>home</strong></span></a>';
$str.= '>';
if(is_search()){
$str.='「'. get_search_query() .'」で検索した結果';
} elseif(is_tag()){
$str.='タグ : '. single_tag_title( '' , false ). '';
} elseif(is_404()){
$str.='404 Not found';
} elseif(is_date()){
if(get_query_var('day') != 0){
$str.='<itemscope itemtype="https://data-vocabulary.org/Breadcrumb"><a itemprop="url" href="'. get_year_link(get_query_var('year')). '"><span itemprop="title">' . get_query_var('year'). '年</span></a>';
$str.='>';
$str.='<itemscope itemtype="https://data-vocabulary.org/Breadcrumb"><a itemprop="url" href="'. get_month_link(get_query_var('year'), get_query_var('monthnum')). '"><span itemprop="title">'. get_query_var('monthnum') .'月</span></a>';
$str.='>';
$str.=''. get_query_var('day'). '日';
} elseif(get_query_var('monthnum') != 0){
$str.='<itemscope itemtype="https://data-vocabulary.org/Breadcrumb"><a itemprop="url" href="'. get_year_link(get_query_var('year')) .'"><span itemprop="title">'. get_query_var('year') .'年</span></a>';
$str.='>';
$str.=''. get_query_var('monthnum'). '月';
} else {
$str.=''. get_query_var('year') .'年';
}
} elseif(is_category()) {
$cat = get_queried_object();
if($cat -> parent != 0){
$ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' ));
foreach($ancestors as $ancestor){
$str.='<itemscope itemtype="https://data-vocabulary.org/Breadcrumb"><a itemprop="url" href="'. get_category_link($ancestor) .'"><span itemprop="title">'. get_cat_name($ancestor) .'</span></a>';
$str.='>';
}
}
$str.= '<itemscope itemtype="https://data-vocabulary.org/Breadcrumb"><span itemprop="title">'. $cat -> name .'</span>';
} elseif(is_author()){
$str .='投稿者 : '. get_the_author_meta('display_name', get_query_var('author')).'';
} elseif(is_page()){
if($post -> post_parent != 0 ){
$ancestors = array_reverse(get_post_ancestors( $post->ID ));
foreach($ancestors as $ancestor){
$str.='itemscope itemtype="https://data-vocabulary.org/Breadcrumb"><a itemprop="url" href="'. get_permalink($ancestor).'"><span itemprop="title">'. get_the_title($ancestor) .'</span></a>';
$str.='>';
}
}
$str.= '<itemscope itemtype="https://data-vocabulary.org/Breadcrumb"><span itemprop="title">'. $post -> post_title .'</span>';
} elseif(is_attachment()){
if($post -> post_parent != 0 ){
$str.= '<itemscope itemtype="https://data-vocabulary.org/Breadcrumb"><a itemprop="url" href="'. get_permalink($post -> post_parent).'"><span itemprop="title">'. get_the_title($post -> post_parent) .'</span></a>';
$str.='>';
}
$str.= '<itemscope itemtype="https://data-vocabulary.org/Breadcrumb"><a itemprop="url" href="'. get_permalink($post -> ID).'"><span itemprop="title">' . $post -> post_title . '</span></a>';
} elseif(is_single()){
$cat_ID = get_post_meta($post->ID,'_organizer_breadcrumbs_category', true);
if($cat_ID){
$cat = get_category($cat_ID);
} else {
$categories = get_the_category($post->ID);
$cat = $categories[0];
}
if($cat -> parent != 0){
$ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' ));
foreach($ancestors as $ancestor){
$str.='<itemscope itemtype="https://data-vocabulary.org/Breadcrumb"><a itemprop="url" href="'. get_category_link($ancestor).'"><span itemprop="title">'. get_cat_name($ancestor). '</span></a>';
$str.='>';
}
}
$str.='<itemscope itemtype="https://data-vocabulary.org/Breadcrumb"><a itemprop="url" href="'. get_category_link($cat -> term_id). '"><span itemprop="title">'. $cat-> cat_name . '</span></a>';
$str.='>';
$str.= '<itemscope itemtype="https://data-vocabulary.org/Breadcrumb"><span itemprop="title">'. $post -> post_title .'</span>';
} else{
$str.=''. wp_title('', false) .'';
}
$str.='';
$str.='</div>';
}
echo $str;
}
//パンくずリスト関数ここまで
その後、
パンくずリストを表示したい部分に以下のコードを記載します。
<?php breadcrumb(); ?>
この記載したところに意図して選択したパンくずリストが表示されます。
#breadcrumb {
font-size: 13px;
color: #000
}
div#breadcrumb a {
color: #000;
}
最後に、
よくを言うなら親カテゴリとか子カテゴリとかじゃなくて、
以下のサイトの様に…。
WordPressでも、
選択したカテゴリのすべてがパンくずリストとして表示できるようにならないかなぁ。
もしくは、
そんな方法を見つけるか作りたいなぁ…。
PC インターネット 伝えたいこと 備忘録 光コラボ 時事ネタ
昨年にNTTが光回線を卸売として、各ISP(プロバイダー)などにフレッツ光や光ネクストなどでエンドユーザー(消費者)に提供していた光回線を、各事業者にその光回線を卸売に踏み切った事により、コラボレーシ…
インフィード広告アドセンス
AFFINGER4Pro WordPress カスタマイズ 備忘録
もうAMP化が騒がれて2年くらいになるのでしょうか・・・。それぞれのテーマによっては標準で対応しているものもありますね。ですが、対応していてもカエレバヨメレバのアフィリエイトコードの変換にはうまくでき…
インフィード広告アドセンス
つまらない…。そんなふうに思ったり考えたりしてしまうことは誰にでもあると思います。そんな中どうやって生きていけばよいのか。どうやって対応していけばよいのか。様々なことを考えさせられます。それが人生なの…
インフィード広告アドセンス
ここ数年でよく見たり聞いたりする「アイキャッチ」という言葉があります。言葉通り、「目(目線・視線)をキャッチ(掴む)」という意味合いかと思われます。ですが、そのアイキャッチ画像って本当に必要なのか?時…
インフィード広告アドセンス
WordPressを使用すると、 アイキャッチ画像の設定が簡単に可能になります。 中でも人気のテーマStingerシリーズだとなおさらいろいろな機能が元々色々あってとても便利です。 そのStinger…
インフィード広告アドセンス
Multiplex 広告
世界中でNo.1のシャアを誇るAmazonでのお得なお買い物でお得をしよう!!ネット通販なので、もちろん24時間年中無休です。健康商品から食品、車カスタマイズ商品、大手家電メーカー商品やパソコンの自作サプライ商品、その他アマゾン・プライムでは映画やドラマなど多くの作品や番組を見ることができます。マスクなど衛生商品も今では必須アイテム。一番信用できて一番商品数の多いAmazonでの買い物が絶対にオススメ!!
2024-05-02
車やバイクのメンテナンスにアウトドアなど、あらゆるフィールドで活躍する同商品を、車内やガレージに備えておこう。 究極のグローブ「プレシジョン プロ ...
2024-05-02
そこでエバポレーターの清掃&消臭をDIYで実施しよう。 ◇季節の変わり目に臭う. クルマのエアコンは寒い冬にはヒーター、暑い夏場に ...
2024-05-02
... メンテナンス未経過契約残高は85.60億円(対前期末比1.5%増)となった。 燃料販売について、主に自動車用燃料給油カードにおいて、低燃費車の普及により需要 ...
2024-05-02
カーディテイリング分野ではないが、フォルクスワーゲン車の販売・メンテナンス専門店の株式会社GAKUYAが出品していた、ヨーロッパ生まれの自動消火システム「 ...
2024-05-02
アルファロメオMiTo 徹底メンテナンス! 2024年5月2日. テーマ:輸入車メンテブログ. コラムカテゴリ:くらし. 明日からゴールデンウイーク休業として、6日まで ...
アドセンス336pxPC閲覧記事下表示1つ目コード
よろしかったらシェアよろしくお願いします。
-WordPress, カスタマイズ, カスタマイズ, 伝えたいこと, 備忘録
-パンくずリスト
このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。
This site is protected by reCAPTCHA and the GooglePrivacy PolicyandTerms of Serviceapply.
このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシーと利用規約が適用されます。
comment