WordPress投稿記事一覧
日別の投稿記事一覧
「uncategorized」を消したい
カテゴリー欄ですが、順番が自由に変えられたら問題なかったのに、必然的にアルファベット順に表示されてしまうので困ったことに。
設定したカテゴリーの真ん中に「uncategorized」のヤツが陣取ってしまうのです。
それでこれを消してしまえ!と思いました。
とてもわかりやすく教えてくださっているサイトさんがありました。
★WordPressの「未分類」カテゴリーを非表示にする方法
消えたわ。
カテゴリー名の取得と表示
「カテゴリー検索をしたときにズラズラッと出てくる記事のトップに、そのカテゴリー名を表示したい」という時。
『get_the_category()』を使いましょう。
『get_the_category()』では、「カテゴリーID」「カテゴリー名」「カテゴリースラッグ」などが取得できます。
<?php $category = get_the_category(); $cat_id = $category[0]->cat_ID; $cat_name = $category[0]->cat_name; $cat_slug = $category[0]->category_nicename; echo $cat_id; // カテゴリーIDを表示 echo $cat_name; // カテゴリー名を表示 echo $cat_slug; // カテゴリースラッグを表示 ?>
私の場合、「カテゴリー名」だけ表示できれば良いので、
<?php $category = get_the_category(); echo $category[0]->cat_name; ?>
って感じでしょうか。
でも、実際に出力してみると、なんだか使い勝手が悪い。出てほしいカテゴリー名が出てこないのだ。
なので、属している全てのカテゴリ名を取得することにしました。
<?php
$categories = get_the_category();
if($categories) {
foreach($categories as $categorie) {
$output .= $categorie->name;
}
echo $output;
}
?>
これで出てほしいカテゴリー名も全て出てくれましたが、スペースも「、」もなく文字が連なって出てくるので、これでは見栄えが悪すぎるだろ…。
それで、今一度カテゴリーを整理して、親子関係を見直してみることにしました。その上で、親カテゴリー名のみを表示したいと思いました。
解決してくれてる人がいらっしゃいました♪
<?php $cats = get_the_category(); $cat = $cats[0]; $cat_name = $cat->cat_name; $cat_slug = $cat->category_nicename; if ($cat->parent){ $parent = get_category($cat->parent); $cat_name = $parent->cat_name; $cat_slug = $parent->category_nicename; echo "<span class=\"ico-cate $cat_slug\">$cat_name</span>"; } else { echo "<span class=\"ico-cate $cat_slug\">$cat_name</span>"; } ?>
これで親カテゴリー名のみがきちんと表示されるようになり、すっきりいたしました。
【参考になったサイト様】
一番簡単なページャーを使いたい
それは、テンプレートタグ/wp link pages。
single.phpなどの使いたい場所(ただしループ内)に <?php wp_link_pages(); ?> でOK。
この()の中は、以下のようなデフォルトになっています。
<?php
$defaults = array(
'before' => '<p>' . __( 'Pages:' ),
'after' => '</p>',
'link_before' => '',
'link_after' => '',
'next_or_number' => 'number',
'separator' => ' ',
'nextpagelink' => __( 'Next page' ),
'previouspagelink' => __( 'Previous page' ),
'pagelink' => '%',
'echo' => 1
); wp_link_pages($defaults); ?>
で、なぜここに書いておくかというと、上のままでは実際のページに「固定ページ 1 2」と表示されるから。
ちょっと考えたけど、要するに「’before’=>'<p>’.__(‘Pages:’),」の「Pages:」が日本語に訳されてしまっているんじゃないかと思って、「Page」に変えてコードを貼ってみた。
そしたら希望通り「Page 1 2」の表示になりました。
ウィジェットのカテゴリーを全て表示させる
ウィジェットに「カテゴリー」をプルダウン表示で追加したけど、3つくらいしか表示されない。
これってどういうこと?
で、以下のファンクションが効きました。
functions.phpに記入
function hook_widget_categories( $args ){
$args['hide_empty'] = 0;
return $args;
}
add_filter( 'widget_categories_args', 'hook_widget_categories');
add_filter( 'widget_categories_dropdown_args', 'hook_widget_categories' );
ちなみにこれで、もし記事がない場合でも設定されたカテゴリーは表示されます。
今回お世話になったサイトさんは以下です。ありがとうございました。
子テーマの作成
なぜ「子テーマ」を作るかというと、オリジナルテーマを色々いじって無事自分好みにカスタマイズできたとしても、親テーマがアップデートされた途端にそれらがすべて無に期すという悲劇を防ぐために他なりません。
気に入ったオリジナルテーマでサイトを始めるときは、まず最初に子テーマを作成し、子テーマで運営するようにしましょう。
★手順1
「親テーマフォルダ」と同じ階層に、空の新規「子テーマフォルダ」を作る。
★手順2
「親テーマ」のstyle.cssをまるっとコピーして、新しく作った「子テーマ」フォルダの中に貼り付ける。
★手順3
そのstyle.cssをテキストエディタで開き、次のように書き換える。(必須なものだけにしました)
Theme Name:テーマ固有の名前 (‘〜 Child’がわかりやすい) Template:親テーマが保存されているフォルダー(テーマ名ではなくフォルダー名を使用。これを記述しないと、テーマは子テーマとして機能しない) Template Version:バージョン番号
注意したいのは、Template。
ここは「親テーマ」のテーマ名ではなくフォルダ名が入るので、最初の一文字が大文字にならないようにする。
★手順4
functions.phpファイルを作り、テキストエディタで下記のように書き込む。
<?php add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); function theme_enqueue_styles() { wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); }
そして付け加えたい機能があれば、随時書き加えていく。
私の場合、これは常に書き加えておきたい。
/*==============================
固定ページカテゴリ追加用コード
==============================*/
add_action( 'init', 'my_add_pages_categories'
) ;
function
my_add_pages_categories()
{
register_taxonomy_for_object_type( 'category', 'page'
) ;
}
add_action( 'pre_get_posts', 'my_set_page_categories'
) ;
function
my_set_page_categories( $query
)
{
if
( $query->is_category== true && $query->is_main_query()){
$query->set( 'post_type', array( 'post', 'page', 'nav_menu_item'
)) ;
}
}
以上です。
なお、次のサイトさんが非常に参考になりました。ありがとうございました。
WordPressで子テーマを作成する方法(詳細ガイド)
https://kinsta.com/jp/blog/wordpress-child-theme/#c