忍者ブログ

Wordpressメモとかアフィめもとか

Wordpress,PHP,アフィリエイトとかの個人メモを記録していくよ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Wordpressのquery_postsで使えるパラメータ

query_postsは便利。

<?php
  query_posts(showposts=10&year=2012&monthnum=10&day=18);
  
  if (have_posts()) {
    $cat = get_the_category();
    echo '<ul>';
    while (have_posts()) {
      the_post();
      echo '<li>';
      echo '<a href="';
      the_permaLink();
      echo '" title="';
      the_title();
      echo '">';
      the_title();
      echo '(';
      the_time('H:i:s');
      echo ')';
      echo $cat[0]->name;
      echo '</a>';
      echo '</li>';
    }
    echo '</ul>';
  } else {
    echo 'postがないです。。。';
  }
?>
この例だと2012/10/18の投稿タイトルと日時、カテゴリーを10件表示になる。

生成されるタグは次のような感じ。
<ul>
  <li><a href="URL" title="URL">URL(hh24:mi:ss)Category</a>
  <li><a href="URL" title="URL">URL(hh24:mi:ss)Category</a>
  <li><a href="URL" title="URL">URL(hh24:mi:ss)Category</a>
  ・・・
</ul>

固定ページに最新とかあるカテゴリーのタイトルだけ並べたいときに使える。


指定できるパラメータは

id 記事ID
name 記事のスラッグ
page_id ページID
pagename ページスラッグ
cat カテゴリID
category_name カテゴリ名
tag_id タグID
tag タグの名前
year 投稿年 YYYYで指定
monthnum 投稿月 MMで指定
day 投稿日 DDで指定
author 投稿者のユーザID
author_name 投稿者の名前
showposts/posts_per_page 何件取るか
offset 何件目から取るか
order 取得の並び順(ASC DESCで指定)
orderby 何で並べ替えるか date, category, titleとか
post_type 記事か固定ページかなど post, page とか
meta_key メタキー
meta_value メタ値

複数指定したいときは&でつなぐ
id=10&page_id=3&year=2012 見たいな感じで

参考
wordpressでquery_postsを使って投稿記事を分ける方法

拍手[0回]

PR

Atahualpaの記事エントリーごとに自動ではてなブックマークボタンをつけたい

はてなのブックマーク作成ツールはページごと手動作成しなければいけないので面倒くさい。


Atahualpaを使っていれば、FOOTERに固定のタグを入れられるのでブログランキングやブログ村などのはそれでいけるんだけど、、、

はてなブックマークはそのエントリーをブックマークしてほしいので、毎回手打ちでリンクのタグを直すのは面倒すぎる。

と言う事で、Atahualpaのテーマを直接いじって対応。

今回は記事のしたでかつ、POSTのFOOTERの上に入れたいので、index.phpの30行目あたりに

<?php bfa_post_kicker('<div class="post-kicker">','</div>'); ?>
<?php bfa_post_headline('<div class="post-headline">','</div>'); ?>
<?php bfa_post_byline('<div class="post-byline">','</div>'); ?>
<?php bfa_post_bodycopy('<div class="post-bodycopy clearfix">','</div>'); ?>
こんな記述があるのでこの下に(固定ページには表示したくないので)

<?php 
if ( is_page() ) {
の判定をかまして、ページじゃなければ
<!-- hatena -->
<a href="http://b.hatena.ne.jp/entry/" <?php get_permalink( ); ?> " class="hatena-bookmark-button" data-hatena-bookmark-title="<?php the_title(); ?>" data-hatena-bookmark-layout="standard-balloon" title="このエントリーをはてなブックマークに追加"><img src="http://b.st-hatena.com/images/entry-button/button-only.gif" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;" /></a><script type="text/javascript" src="http://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script>
はてなのタグをいれる。記事のURLをget_permalink()で、たいとるをthe_title()で取得する。
 
atahualpaの設定のところでも%permalink%と代替の変数が用意されているんだけど、はてなのタグに埋め込むとバックスペースがエンコードされてしまって変になるので直接修正と相成りました。


このあたりの記事を参考にどうぞ。
WordPressではてなブックマークの○○usersと表示させる方法。

拍手[0回]

WP-PostViews 記事の閲覧数を表示するプラグイン

何が人気なのかわかるといいよね。

インストールはいつもの公式からいれて、有効化


ウィジェットに人気記事10件を表示したい場合

テキストウィジェットに以下のコードを記載
<?php 
if (function_exists('get_most_viewed')){
  get_most_viewed();
}?>
表示されるリストのディフォルトは<li>タグで囲まれているので、設定のテンプレートを編集すればOK
ただし、そのままだと、固定ページも対象となってしまうので、投稿だけに絞りたい場合は、
wp-postviews/wp-postviews.phpを直接修正^^;

216行目あたりに取得するSQLを生成しているので

$most_viewed = $wpdb->get_results("SELECT DISTINCT $wpdb->posts.*, (meta_value+0) AS views FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id = $wpdb->posts.ID WHERE post_date < '".current_time('mysql')."' AND $where AND post_status = 'publish' AND meta_key = 'views' AND post_type = 'post' AND post_password
= '' ORDER BY views DESC LIMIT $limit");
Where句の中にAND post_type = 'post'を追加して、postだけ取るようにする。





子カテゴリ別の人気記事一覧はこんな感じ

<?php
function get_all_category_all() {
  if ( ! $cat_all = wp_cache_get( 'all_category_all', 'category' ) ) {
  $cat_all = get_terms( 'category', 'fields=all&get=all&orderby=id' );
  wp_cache_add( 'all_category_all', $cat_all, 'category' );
  }
  return $cat_all;
}
 
$arrys = get_all_category_all();
foreach ( $arrys as $arry ) {
 
  #親のあるカテゴリはスキップ
  if ( $arry->parent != 0 ) {
    echo '<div style="background-color:#eeeeee;">'.$arry -> name. '</div>';
    
    if (function_exists('get_most_viewed_category')) {
      get_most_viewed_category($arry -> term_id, 'post', 10);
    }
  }
面倒なので固定記事内にFunctionかいちゃった。





拍手[0回]

記事の中に開閉するタブを作れるプラグインWordPress Tabs Slides

WordPress Tabs Slidesは記事やページの中にスライドするタブを作れるプラグインです。

良く見かける「よくある質問Q&A」で、QをクリックするとAが広がって見えるやつです。


インストールはいつもどおり公式から
設定は、早さやFrontpageで設定するか否か程度です。

設定が終わったら、作りたい記事に以下のショートコードを記入する。

{slide=タイトル} 中身 {/slide}

タイトルのところがたとえばQ&Aで言うところのQで中身がAです。

{slide=Q.電源が付きません}
<ul>
  <li>コンセントはつながっていますか?</li>
  <li>電源ボタンは押しましたか?</li>
</ul>
{/slide}

こんな感じ

ページ表示状態では

Q.電源が付きません↓

と表示され 

クリックすると

Q.電源が付きません↓
・コンセントはつながっていますか?
・電源ボタンは押しましたか?

こんな感じで広がります。

拍手[1回]

atahualpaで固定記事のみタイトルを表示させない

atahualpaで一部のページ(今回は固定ページ)でタイトルを表示したくない時
設定でできなさそうだったので、テンプレートを直接修正。


atahualpaのページ構成はディフォルトだと
KIKER
HEADER
BYLINE
BODY
FOOTER
となっている。

投稿記事はHEADER表示はいいけど、固定ページはHEADERを画像にしたいときになど

こうしたい
BODY
FOOTER


wp-content/themes/atahualpa直下にあるindex.phpを修正

28~31行目

<?php bfa_post_kicker('<div class="post-kicker">','</div>'); ?>
<?php bfa_post_headline('<div class="post-headline">','</div>'); ?>
<?php bfa_post_byline('<div class="post-byline">','</div>'); ?>
これをIFで囲む
<?php if( is_page() != 1 ){
bfa_post_kicker('<div class="post-kicker">','</div>');
bfa_post_headline('<div class="post-headline">','</div>');
bfa_post_byline('<div class="post-byline">','</div>');
} ?>

is_page() != 1 固定ページじゃないときにだけ、KIKCER,HEADLINE,BYLINEを表示する。

テーマがバージョンアップしたらまた直さないといけなくなっちゃうけど。。。
 
他にいい方法があったら教えてください!



拍手[0回]

ブログ内検索

最新コメント

広告

プロフィール

なんとなくはじめてみたよ

忍者ツールズプロフィールは終了しました

カウンター