宅猫まろん用のカスタム投稿作成でのカスタマイズ(2)改訂

本記事は古いです、以下の記事を見てください。
また、テーマがSimplicity2の場合だった時のカスタマイズです。

にゃんきち日和(ブログ) のカスタマイズについてにゃんきち日和

カスタム投稿の個別記事表示でもパンくずリストを表示させるように修正した為、カスタマイズ(2)を改訂しました。
また、改訂しました。

宅猫まろん用のカスタム投稿作成でのカスタマイズ(2)改訂2

simplicityテーマのカスタマイズ内容一覧

カスタマイズは、simplicityの子テーマを使うため、親テーマと共に子テーマをインストールしていることが前提です。

参考 Simplicityの子テーマSimplicity

カスタムの内容一覧

  • ホームページ新着一覧にカスタム投稿を含めた1ページのみとし、にゃんきちブログとまろんブログを別の固定ページとして作成。
  • 通常投稿と同じようにカテゴリ分類(タクソノミー)の一覧とカスタム投稿個別記事でパンくずリストを表示。
  • 通常投稿と同じようにカスタム投稿でカスタム分類を指定しなかった場合に規定値を設定。
  • カスタム投稿でMarkdownを使用。
  • カスタム投稿をRSSに含める。
  • サイドバーにカスタム投稿の新着、カテゴリ、アーカイブを表示。

カスタマイズするのに以下のサイト記事を参考にさせていただきました。

ホームページ新着一覧にカスタム投稿を含めた1ページのみとし、にゃんきちブログを別の固定ページとして作成するのに以下のサイト記事を参考にさせていただきました。

参考 Simplicityをカスタマイズしてカスタム投稿タイプを使う方法きつね胡乱

カスタム投稿の個別記事表示でのパンくずリスト表示では、以下のサイト記事を参考というか、関数get_youngest_tax($taxes, $mytaxonomy)を丸々使わせていただきました。
自分では作れそうにない関数なのでありがたいことです。

参考 WordPress でパンくずリストを出力するWeb Design Leaves

最初に一覧表示(list.php)とパンくずリスト(breadcrumbs.php)をカスタマイズします。

親テーマからlist.php、breadcrumbs.phpを子テーマにコピーします。

コピーしてきたlist.phpの修正

先頭部分の「パンくずリスト」コードに、
【修正前】

<?php
////////////////////////////
//パンくずリスト
////////////////////////////
  if (is_category()) {
    get_template_part('breadcrumbs');
  }
?>

カスタムタ分類の場合もbreadcrumbs.phpを呼び出すようにします。
【修正後】

<?php
////////////////////////////
//パンくずリスト
////////////////////////////
  if (is_category() || is_tax()) {
    get_template_part('breadcrumbs');
  }
?>

通常投稿を別固定ページにするので、is_home()をis_front_page()に変更します。
【修正前】

<?php
////////////////////////////
//アーカイブのタイトル
////////////////////////////
if (!is_home() && !is_search()) { ?>

【修正後】

<?php
////////////////////////////
//アーカイブのタイトル
////////////////////////////
if (!is_front_page() && !is_search()) { ?>

「アーカイブのタイトル」コード部分に「にゃんきち:」「まろん:」表記を追加していきます。
【修正前】

    <?php if( is_category() ) { ?>
    <?php single_cat_title(); ?>

通常投稿なので「にゃんきち:」を追加します。
【修正後】

    <?php if( is_category() ) { ?>
    にゃんきち:
    <?php single_cat_title(); ?>

【修正前】

    <?php } elseif( is_tag() ) { ?>
    <?php single_tag_title(); ?>

タグは使わないのですが、「にゃんきち:」を追加します。
【修正後】

    <?php } elseif( is_tag() ) { ?>
    にゃんきち:
    <?php single_tag_title(); ?>

【修正前】

    <?php } elseif( is_tax() ) { ?>
    <?php single_term_title(); ?>
    <?php } elseif (is_day()) { ?>

カスタム投稿の「まろん:」を追加し、以降は投稿タイプで表示変更できるように判断文を追加します。
【修正後】

    <?php } elseif( is_tax() ) { ?>
    まろん:
    <?php single_term_title(); ?>
    <?php } else { ?>
    <?php if( is_post_type_archive( 'maron' ) ) { ?>
    まろん:
    <?php } else { ?>
    にゃんきち:
    <?php } ?>
    <?php if (is_day()) { ?>

【修正前】

    <?php } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
    Archives
    <?php } else { ?>
    Archives
    <?php } ?>
  」<?php echo get_theme_text_list();//「一覧」部分の取得 ?>

Archivesを「ブログ」に変更し、上記の投稿タイプで表示を変更する判断文用の閉じカッコを追加します。
【修正後】

    <?php } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
    ブログ
    <?php } else { ?>
    ブログ
    <?php } ?>
    <?php } ?>
  」<?php echo get_theme_text_list();//「一覧」部分の取得 ?>

breadcrumbs.phpの修正

カスタム分類でパンくずリストが表示できるように修正してみましたが、Wordpress内部/PHPに詳しくなくため、正しくない修正かもしれませんので参考程度としてください。
また、カスタム投稿のパンくずには、カスタム投稿名の表示も入れています。
通常投稿かの判断を入れます。
【修正前】

<?php //カテゴリ用のパンくずリスト
$cat = is_single() ? get_the_category() : array(get_category($cat));

【修正後】

<?php //パンくずリスト
$post_type = get_post_type();
if($post_type == 'post') {
//通常投稿カテゴリ用
$cat = is_single() ? get_the_category() : array(get_category($cat));

カスタム投稿用のパンくずリストを追加します。
【修正前】

    echo '</div><!-- /#breadcrumb -->';
}

【修正後】

    echo '</div><!-- /#breadcrumb -->';
}
} else {
//カスタム投稿タクソノミー用
  $my_taxonomy = get_query_var('taxonomy');  //[taxonomy] の値(タクソノミーのスラッグ)
  $echo = null;
  $query_obj = get_queried_object();
  if($my_taxonomy &&  is_tax($my_taxonomy)) {//カスタム分類か判定
    $par_base = get_term( $query_obj->term_id, $query_obj->taxonomy );
    $par = get_term( $par_base->parent, $par_base->taxonomy );
  } else { //カスタム投稿での個別記事
    $taxes = get_object_taxonomies($post_type);
    $mytax = $taxes[0];
    $taxes = get_the_terms($post->ID, $mytax); 
    $par_base = get_youngest_tax($taxes, $mytax );  //print_r($tax);    
    $par = get_term( $par_base->parent, $par_base->taxonomy );
  }
    echo '<div id="breadcrumb" class="breadcrumb-category">';
    //ホームページリンク
    echo '<div itemtype="http://data-vocabulary.org/Breadcrumb" itemscope="" class="breadcrumb-home"><span class="fa fa-home fa-fw"></span><a href="'.home_url().'" itemprop="url"><span itemprop="title">'.get_theme_text_breadcrumbs_home().'</span></a><span class="sp"><span class="fa fa-angle-right"></span></span></div>';
    //カスタム投稿リンク
    echo '<div itemtype="http://data-vocabulary.org/Breadcrumb" itemscope=""><span class="fa fa-folder fa-fw"></span><a href="'.home_url()."/".$post_type.'" itemprop="url"><span itemprop="title">'.get_post_type_object($post_type)->label.'</span></a><span class="sp"><span class="fa fa-angle-right"></span></span></div>';
    //カスタム分類リンク
    while($par && !is_wp_error($par) && $par->term_id != 0){
        $echo = '<div itemtype="http://data-vocabulary.org/Breadcrumb" itemscope=""><span class="fa fa-folder fa-fw"></span><a href="'.get_term_link($par->term_id,$par->taxonomy).'" itemprop="url"><span itemprop="title">'.$par->name.'</span></a><span class="sp"><span class="fa fa-angle-right"></span></span></div>'.$echo;
        $par = get_term( $par->parent, $par->taxonomy );
    }
    echo $echo.'<div itemtype="http://data-vocabulary.org/Breadcrumb" itemscope=""><span class="fa fa-folder fa-fw"></span><a href="'.get_term_link($par_base->term_id,$par_base->taxonomy).'" itemprop="url"><span itemprop="title">'.$par_base->name.'</span></a></div>';
    echo '</div><!-- /#breadcrumb -->';
}
?>

関数get_youngest_tax($taxes, $mytaxonomy)は、参考にしたサイトの記事からコピーして?>の前に追加するか、functions.phpに追加してください。

次にトップページ用のテンプレート(top-page)を作成します。

・親ページからindex.phpをコピーしてきて、名前をindex-top.phpに変更します。
・修正したlist.phpを複製して名前をlist-top.phpに変更します。

index-top.phpの修正

テンプレート名(top-page)、投稿タイプ(post、maron)、取得する記事数(設定しているページの記事数)、ページの記事一覧呼び出し(list-top)に変更します。
【修正後】

<?php 
//  Template Name: top-page
?>

【修正後】

<?php
$args = array(
     'post_type' => array('post' ,'maron'), // 投稿タイプを指定
     'showposts' => get_option('posts_per_page'), // ページの最大記事数を指定
     'paged' => $paged,
); ?>
<?php
$wp_query = new WP_Query($args);
?>

<?php get_template_part('list-top') ?>

list-top.phpは、最後部分にある「エントリーのページャー」コードを全て削除し、ページナビを表示しないようにします。

次ににゃんきちブログ用のテンプレート(nyankichi-blog)を作成します。

・index-top.phpを複製して名前をindex-nyankichi.phpに変更します。

index-nyankichi.phpの修正

テンプレート名(nyankichi-blog)、投稿タイプ(post)に変更します。
【修正後】

<?php
//  Template Name: nyankichi-blog
?>

【修正後】

<?php
$args = array(
     'post_type' => 'post', // 投稿タイプを指定
     'paged' => $paged,
); ?>
<?php
$wp_query = new WP_Query($args);
?>

<?php get_template_part('list') ?>

トップページと、にゃんきちブログの固定ページを作成し、作ったテンプレートを指定します。

WordPressの管理画面で固定ページを新規作成し、タイトル、パーマリンク、テンプレートを指定します。

  • トップページ用固定ページ
    タイトル:トップページ
    パーマリンク:top
    テンプレート:top-page

  • にゃんきちプログ用固定ページ
    タイトル:にゃんきちブログ
    パーマリンク:nyankichi
    テンプレート:nyankichi-blog

sinplicityのカスタマイズ画面で、固定ページのトップページがフロントになるようにします。
Wordpress管理画面->外観->カスタマイズ->固定フロントページにて変更します。

まろんブログのメニュー設定

メニューのまろんブログについては、カスタムリンクを使って作ります。

次回は、functions.phpへのカスタマイズについて「宅猫まろん用のカスタム投稿作成でのカスタマイズ(3)」に続く。

Monappy: MBDQ39VHypMQwfyR8SshuHvfPNUz321F6B

Monacoinを投げる
モナゲ(tipmona)ってなに?
そもそもMonacoinってなに?

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください