Home > wordpress
wordpress Archive
カテゴリーの親カテゴリーを取得【WordPress】
- 2010-06-28 (月)
- wordpress
書式
<?php echo(get_category_parents(category, display link, separator, nice name)); ?>
引数
- category (整数/$cat)- 親カテゴリーを取得するカテゴリーのID。
デフォルト値は「$cat」で、現在表示しているカテゴリーページ/記事のカテゴリーID。 - display link (true/false) – 各カテゴリーへのリンクを出力するかどうか。
true(デフォルト。リンクを出力する)
false(デフォルト。リンクを出力しない) - separator (文字列)- リンクの間を区切る記号やテキスト。デフォルト値は「»」。
- nice name (true/false)- カテゴリー・スラッグを名前として使うかどうか。
true(デフォルト。英数字小文字のみのカテゴリー・スラッグを出力)
false(デフォルト。大文字や記号、日本語を使ったカテゴリー名を出力)
例
<?php echo(get_category_parents($cat, true, ' » ')); ?>
※separatorは後ろにつく。
- コメント: 1
- Trackbacks: 0
カレンダーの表示形式【WordPress】
- 2010-06-28 (月)
- wordpress
WordPressのカレンダーとほんのちょっと向き合ってみる。
<?php get_calendar(); ?>
で吐き出すカレンダーの翌月、先月の表示箇所は日付の下に出る。
これを月の左右または下段に表示したい…
と思い、ちょっと見てみると下記ファイルを修正すると実現できそう。
wp-includes\general-template.php
あんまり触りたくないのだが、もっと簡単にできるのだろうか?
プラグインはありそうだが、極力プラグインなしで制作したいと思うのだが…
とりあえず、今回はいったんスルーで。
必要に迫られたらまた考えよう。
何かいい方法をご存知の方、ご教授くださればうれしいです。
なんて、あまいこと言ってちゃだめだねー…
- コメント: 2
- Trackbacks: 0
同じ日付が表示されない【WordPress】
- 2010-06-22 (火)
- wordpress
<?php the_date(); ?>
を使って日時を出力した場合、
同じ日に複数の投稿をした場合、日付が最初の1件しか表示されません。
記事毎に日付を入れたい!!そんなときは…
<?php the_time(); ?>
の登場です。
「2010年6月22日」と表示させたい場合は、
<?php the_time("Y年n月j日"); ?>
のように記述します。
フォーマット文字列については下記リンク先参照!
- コメント: 1
- Trackbacks: 0
WordPress のアドレス (URL)を誤って変更してしまったら…【WordPress】
- 2010-06-15 (火)
- wordpress
ログインできません!
あーやっちまったなー!!
って時も慌てず焦らず下記の通りやるのである。
設定 > 一般 のWordPressのアドレス(URL)をブログのアドレス(URL)を変更するときに、誤って一緒のアドレスに変更してしまった場合の対処法
MySQLのテーブルから直接データを修正します。
wp_optionテーブルのsiteurlの値をインストールした正しい場所に変更すればOK!
ふー…あせった。。。
- コメント: 1
- Trackbacks: 0
特定のカテゴリにある記事のスタイルを変更する【WordPress】
- 2010-06-15 (火)
- wordpress
HTMLコードをテンプレート内に書く場合は、必ずというPHP開始・終了タグの外側に書かなければなりません。逆に、PHPコードは、必ず タグの内側に書きます。
下記のように、if や else ステートメント内でもPHPコードを一時的に閉じ、HTMLコードを書くことができます。
<!-- WordPressループ開始 -->
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<!-- 以下で、記事がカテゴリー3に属しているかテスト -->
<!-- もし属している場合、"post-cat-three"というCSSクラスのdivボックスを表示 -->
<!-- それ以外の場合、"post"というCSSクラスのdivボックスを表示 -->
<?php if ( in_category('3') ) { ?>
<div class="post-cat-three">
<?php } else { ?>
<div>
<?php } ?>
<!-- 記事のタイトルとパーマリンクを表示 -->
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<!-- 日時を表示 -->
<small><?php the_time('F jS, Y'); ?></small>
<!-- 記事の本文をdiv内に表示 -->
<div>
<?php the_content(); ?>
</div>
<!-- 記事のカテゴリーをコンマ区切りで表示 -->
<p>Posted in <?php the_category(', '); ?></p>
</div> <!-- 最初の div ボックスを閉じる -->
<!-- “else”部分を除いたWordPressループ終了 -->
<?php endwhile; else: ?>
<!-- 最初の“if”にて表示する記事があるかどうかをテストしたため、“else”では記事がない場合に実行 -->
<!-- つまり、記事がなければ以下を表示 -->
<p>Sorry, no posts matched your criteria.</p>
<!-- WordPressループを「完全に」終了 -->
<?php endif; ?>
【参考・引用】
The Loop
- コメント: 4
- Trackbacks: 0
子孫含むカテゴリでの条件分岐【WordPress】
- 2010-06-15 (火)
- wordpress
求めていた答えが見つかった。
<?php
$post_cats = get_the_category();
if ( $post_cats[0]->cat_ID == 1 || $post_cats[0]->category_parent == 1 || cat_is_ancestor_of( 1, (int)$post_cats[0]->category_parent ) ) { ?>
親カテゴリー1の記事の表示内容
<?php } elseif ( $post_cats[0]->cat_ID == 5 || $post_cats[0]->category_parent == 5 || cat_is_ancestor_of( 5, (int)$post_cats[0]->category_parent ) ) { ?>
親カテゴリー5の記事の表示内容
<?php } else { ?>
その他の記事の表示内容
<?php } ?>
※複数カテゴリーにチェックされている記事でも取得できた最初のカテゴリーで判別されます。
これーー!!
いやー、ほんとたどりつくのに時間がかかった…
メモメモ!!
cat_is_ancestor_of という関数を使うようです。
cat_is_ancestor_of($cat1, $cat2)
$cat1で指定したカテゴリが$cat2の親である場合にtrueを返す。(どれだけ下の階層でもヒットすればtrue)
引数はカテゴリーIDで、数値でないと常にfalseになる。(’1′,’4′)ではなく(1,4)で指定
【参考】
フォーラム 条件分岐について
[WP]Category, Tag and Taxonomy Functions
MovableType・WordPressでカテゴリーの親子関係を判定する
- コメント: 2
- Trackbacks: 2
カテゴリー1とその子孫カテゴリーを呼び出す【WordPress】
- 2010-06-15 (火)
- wordpress
query postsを使ってカテゴリー1とその子孫カテゴリーを呼び出す
<?php query_posts($query_string. '&cat=1&showposts=0'); ?> <?php if(have_posts()):while(have_posts()):the_post();?> <p><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></p> <?php endwhile; endif; ?>
’showposts’ => 0 の表示件数は「管理画面>設定>表示設定」の「1ページに表示する最大投稿数」の値になる
投稿件数5件かつIDではなくカテゴリー名で指定したい場合
<?php query_posts($query_string. '&category_name=cat1-name&showposts=5'); ?> <?php if(have_posts()):while(have_posts()):the_post();?> <p><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></p> <?php endwhile; endif; ?>
複数カテゴリーの指定方法
IDで指定した複数のカテゴリーすべてに含まれるカテゴリーを取得します。
以下はカテゴリーID 2 と 6 の両方に含まれる投稿を取得:
query_posts(array('category__and' => array(2,6)));
カテゴリーID 2 または 6 に含まれる投稿を取得するには、前述の cat か category__in(こちらは子孫カテゴリーを含みません)を使います:
query_posts(array('category__in' => array(2,6)));
以下の指定では複数のカテゴリーのいずれかに含まれる投稿を除くことができます:
query_posts(array('category__not_in' => array(2,6)));
その他引数等詳しくは Codexテンプレートタグ/query posts に掲載されています。
もうちょっと勉強。
1catと1cat-childを読み込みたい場合
<?php if ( in_category('1cat')||in_category('1cat-child') ) ?>
または
<?php if ( in_category( array( '1cat','1cat-child' ) )) ?>
どちらでもいい。のかな…?!完全に自信はない。
- コメント: 7
- Trackbacks: 0
get template part【WordPress】
- 2010-06-15 (火)
- wordpress
<?php get_template_part( 'loop', 'index' ); ?>
について調べてたら、どうやら子テーマで loop.php を使用する際に使えるらしい。
テンプレートパーツをテンプレートに読み込むときに使う関数だそうだ。
子テーマ で多重定義して簡単にセクションを再利用できます。
上記の場合は、
child/loop-index.php
child/loop.php
oya/loop-index.php
oya/loop.php
の順番にPHP require()するらしい。
今回は子テーマは視野に入れてないが…
基本は下記のように記述
<?php get_template_part( $slug, $name ) ?>
$slug
(文字列)(必須) 一般テンプレートのスラッグ名 初期値: なし
$name
(文字列)(オプション) 特定テンプレートの名前 初期値: なし
テーマのその名前のテンプレートパーツをインクルードします。
name を指定した場合は、特定の部分をインクルードします。
{slug}.php ファイルが無い場合は、インクルードしません。
パラメータに関しては、”{slug}-{name}.php” を呼び出します。
<?php get_template_part( 'nav' ); // Navigation bar (nav.php) ?> <?php get_template_part( 'nav', '2' ); // Navigation bar #2 (nav-2.php) ?> <?php get_template_part( 'nav', 'single' ); // Navigation bar to use in single pages (nav-single.php) ?>
よって、今回はテンプレートにテンプレートファイル”loop.php”を読み込みたいだけなので…
<?php get_template_part( 'loop' ); ?>
でいいのかな。
まだまだ使いこなせていないけど、なんとかかんとかがんばろ…
【参考・引用】
関数リファレンス/get template part
- コメント: 1
- Trackbacks: 0
カテゴリー別に月別アーカイブを表示する【WordPress】
- 2010-06-10 (木)
- wordpress
カテゴリー別に月別アーカイブを表示したかった!
プラグインがあるみたい!
Archives for a category WordPress plugin
WordPress3で動くかはまだ試してないが…
ぜひ使えるか試してみようと思う。
使い方等下記サイトで紹介されているのでご参考に。
カテゴリーごとの日付アーカイブを表示する WordPress プラグイン – 「Archives for a category」
Wordpress wp_get_archivesでカテゴリー別・年別アーカイできるプラグイン(Archives for a category)
カテゴリー別に月別アーカイブを表示する : WordPress
- コメント: 0
- Trackbacks: 0
WordPress3ベータでWordPressのバージョンを消す【WordPress】
- 2010-05-28 (金)
- wordpress
<?php wp_head(); ?>が吐き出している一部なわけですが、これを取ってしまうと多くのプラグインが正常動作しません ( JavaScript を使うものはほぼ全滅)
下記、WordPressのバージョンを消す方法
wp-includes/default-filters.php
// Actions
add_action( 'wp_head', 'wp_generator' );
の後に
remove_action('wp_head', 'wp_generator');
を追記することで消えます。
なお、関数の中身はwp-includes/general-template.php
【2010.8.26追記】
コアファイル変更しなくても、プラグインを入れなくても、metaタグのGeneratorを消せる方法を記した記事をアップしました。
コアファイル変更しなくても、プラグインを入れなくても、消せる方法
- コメント: 0
- Trackbacks: 1
ホーム > wordpress