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

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

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

カスタム投稿の個別記事表示でもパンくずリストの表示修正した為、「宅猫まろん用のカスタム投稿作成でのカスタマイズ(2)改訂」を見てください。

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

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

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

参考 Simplicityの子テーマSimplicity

カスタムの内容一覧

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

ホームページ新着一覧にカスタム投稿を含めた1ページのみとし、にゃんきちブログとまろんブログを別の固定ページとして作成。

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

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

最初にまろんブログ用のテンプレート(maron-blog)を作成します。

最初にまろんブログ用を作るのは、作業の手間を省くためです。
親テーマからindex.php、list.php、breadcrumbs.phpを子テーマにコピーします。

・index.phpは、index-maron.phpに名前変更します。
・list.phpの名前は変更しません。
・breadcrumbs.phpは、breadcrumbs-maron.phpに名前を変更します。

index-maron.phpの修正

index-maron.phpの先頭行を
【修正前】

<?php //インデクスリスト用 ?>

以下のようにテンプレート名(maron-blog)を追記するように修正します。
【修正後】

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

ヘッダーと一覧表示部分の間に
【修正前】

<?php get_header(); ?>

<?php get_template_part('list') ?>

まろんブログ用にメインクエリをカスタムの投稿タイプ(maron)に変更する記述を追加します。
【修正後】

<?php get_header(); ?>

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

<?php get_template_part('list') ?>

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

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

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

カスタムタ分類の場合の判断を入れてbreadcrumbs-maron.phpを呼び出すようにします。
【修正後】

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

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

    <?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-maron.phpの修正

カスタム分類でパンくずリストが表示できるように修正してみましたが、Wordpress内部/PHPに詳しくなくため、正しくない修正かもしれませんので参考程度としてください。
カスタム分類を実際に階層構造で作った場合、パンくずリストは階層構造で表示されますが、リンクが思ったようになりません。宅猫まろん用のブログで階層のカスタム分類は作らない予定なので、これで良しとしています。
例えば、親がA 子がB とした場合に、想定したのは以下なのですが、

親ページ;/maron/m_category/A
子ページ:/maron/m_category/A/B

子ページが親と同じ階層になります。

親ページ;/maron/m_category/A
子ページ:/maron/m_category/B

【修正前】

$cat = is_single() ? get_the_category() : array(get_category($cat));

【修正後】

$cat = is_singular() ? get_the_category() : array(get_category($cat));

【修正前】

    $par = get_category($cat[0]->parent);

【修正後】

    $query_obj = get_queried_object();
    $par_base = get_term( $query_obj->term_id, $query_obj->taxonomy );
    $par = get_term( $par_base->parent, $par_base->taxonomy );

while文内の

.get_category_link($par->term_id).

.get_term_link($par->term_id,$par->taxonomy).

に変更します。
while文を抜けた後の以下の2つのコード

.get_category_link($cat[0]->term_id).
.$cat[0]->name.

.get_term_link($par_base->term_id,$par_base->taxonomy).
.$par_base->name.

に変更します。

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

・index-maron.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-maron.phpを複製して名前をindex-nyankichi.phpに変更します。
・修正したlist.phpを複製して名前をlist-nyankichi.phpに変更します。

index-nyankichi.phpの修正

テンプレート名(nyankichi-blog)、投稿タイプ(post)、記事一覧呼び出し(list-nyankichi)に変更します。
【修正後】

<?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-nyankichi') ?>

list-nyankichi.phpの修正

「アーカイブのタイトル」コードの最初のif文から
【修正前】

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

ホームページかの判断を削除します。これにより「にゃんきち:ブログ」と表示されます。
【修正後】

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

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

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

トップページ

  • まろんブログ用固定ページ
    タイトル:まろんブログ
    パーマリンク:maron
    テンプレート:maron-blog

まろんブログ

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

にゃんきちブログ

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

フロント

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

Monappy: MBDQ39VHypMQwfyR8SshuHvfPNUz321F6B

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

コメントを残す

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

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