wordpressハマリポイントメモ

wordpressでテンプレートをいじる際にハマったところを、逆引きリファレンスっぽくまとめておきます。

パーマリンク取得
参考

get_the_permalink();
//ではなくて
get_permalink();
//が正解

カテゴリーのスラッグ名出力
参考

$cat->category_slug
//ではなくて
$cat->category_nicename
//が正解

カテゴリーリストに(記事数)を表示
参考
ウィジェットを使わず直書きするときは、wp_list_categoriesを使う。
showcount=trueにすると、カテゴリ投稿数が表示される。

wp_list_categories('show_count=true');

カテゴリごとの記事一覧を羅列
参考
ループの前でカテゴリを取得し、配列に格納しておく。
パラメータで、並び順を指定できる。(この場合はID昇順)

$categories = get_categories('orderby=id&order=ASC');

投稿を古い順番に表示
参考
ループの前で、query_postsにパラメータを指定。(この場合は1ページに10件、昇順)
$pagedを指定するのは、常に1ページ目を取得してしまうのを避けるため。

$paged = get_query_var('paged');
query_posts('posts_per_page=10&order=asc&paged='.$paged);

カテゴリページでのカテゴリ名の出力

the_category(',');

だとカテゴリ名が全部でちゃうから、

single_cat_title('');

にすると、今いるページの階層のカテゴリ名のみが出せる。

抜粋の文字数を変更
参考
1.「WP Multibyte Patch」プラグインを有効化して、日本語でも文字数を指定可能にする
2.文字数を指定

echo mb_substr(get_the_excerpt(), 0, 400);//抜粋の文字数を設定

ページ送りがうまく動かない
参考

$paged = get_query_var('paged');
query_posts("posts_per_page=10&paged=$paged");
if(have_post()) : while (have_posts()) : the_post();

もしくは、『query_postsで指定している件数』、『管理画面の表示設定で指定している件数』、『表示しようとしているカテゴリの記事数』を確認する。
参考

タイトルの表示を『記事名 | ブログ名』に

wp_title('|', true, 'right');
bloginfo('name');

デフォルトテーマをいじる場合は、functions.phpでfilterを取り除いてしまえば良い。(応急処置)

add_filter( 'wp_title', 'twentytwelve_wp_title', 10, 2 );
//の直後でfilterをremoveする
remove_filter( 'wp_title', 'twentytwelve_wp_title', 10, 2 );

続きを読むの文言を変更
the_contentタグを使う。

the_content('more_link_text', strip_teaser, 'more_file');

パーマリンク設定すると404エラーになる
参考
.htaccessとhttpd.confが怪しいことが多い。

検索ボックスで全角スペースを利用可能に
functions.phpに以下を追加

if(isset($_GET['s'])) $_GET['s']=mb_convert_kana($_GET['s'],'s','UTF-8');

検索ボックスのテキスト表示を検索クエリに
参考

<input type="text" value="<?php the_search_query(); ?>" />

他、ボリューム大きめの記事リンク集
徹底解説!query_postsを使ってWordPressで表示する記事数をカテゴリごとに変更する(プラグイン不使用)
パンくずリストを作ってみるとWordPress でのサイト構築のコツがつかめるかもしれない(コード 付き)
WordPressの検索機能をもっと使いやすくする


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>