タグ: wordpress

tool

プラグインとは別メニューでツールという項目があり、
その中には「利用可能なツール」「インポート」「エクスポート」って項目があるんだけど。
「インポート」の部分は結局のところプラグインで、個別にインストールしなくてはいけない。
これらのインポートツールの設置場所も普通のプラグインと同じpluginsディレクトリです。

RSS Importer

ツールのインポート画面でRSSインポートするときのプラグインはこれ

最終更新者を表示する

固定ページを表示しているテンプレートに以下を追加する。

Author : <?php the_modified_author(); ?><br />

引数はないので、前後に適宜文字列を追加して体裁を整える。

固定ページでもタグを表示したい

Page Tagger などで固定ページにもタグ付けできるようにすると、
各固定ページにもどのタグ付けがされているのか表示したくなる。
固定ページを表示しているテンプレートに以下を追加。

<?php the_tags('TAG : ',' , ',''); ?>

引数はそれぞれ「タグ表示前の文字列」・「タグの区切り文字列」・「タグ表示後の文字列」なので、
「お砂糖」「スパイス」「素敵なものいっぱい」というタグがついているページに

<?php the_tags('パワーパフガールズは','と','で出来ています'); ?>

とやれば、
「パワーパフガールズはお砂糖とスパイスと素敵なものいっぱいで出来ています」
という表示になる。

the_tags はタグの名前のみを返してくれるけど、これにタグへのリンクを付け加えて返してくれる get_the_tag_list というものもある。
書き方はほとんど一緒で

<?php echo get_the_tag_list('パワーパフガールズは','と','で出来ています'); ?>

the_tags と違って自分で出力する機能を持たないので echo なり printf なりしてあげる必要がある。
これだと
「パワーパフガールズはお砂糖スパイス素敵なものいっぱいで出来ています」
という表示になる・・・

ダッシュボードから不要なものを削除

ダッシュボードにデフォルトで存在する
「WordPress ブログ」や「WordPress フォーラム」は
正直クライアントからは必要ないので削除する。

hijiriworld Webさまにやりたい事そのものが掲載されているので、これを改変するだけ。
公式は Dashboard Widgets API の中盤以降にある「Advanced: Removing Dashboard Widgets」あたり。

function katz_remove_dashboard_widgets() {
  global $wp_meta_boxes;
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
}
add_action('wp_dashboard_setup', 'katz_remove_dashboard_widgets');

できたできた。

WP UI – Tabs, Accordions, Sliders

WP UI – Tabs, Accordions, Sliders
機能が満載。
コンテンツ内にTABコンテンツを搭載する機能。普通に文章を書くだけでなく、他のPOSTや固定ページを引っ張ってくることもできる。

[ wptabs style=”wpui-achu” ]


TAB


TAB機能。
[ Wrap tabs ]ボタンで概要を作成し、[ Add tab ]ボタンでタブを追加していく。
styleを40種類ぐらいから選択することができる。
ここで使っているのは「wpui-achu」。

Accordion


[ wptabs ]に「type=”accordion”」を指定することでアコーディオン形式にすることができる。

Spoiler


[ wptabs ]とは別に[ wpspoiler ]がある。
[ wpspoiler name=”Spoiler Test1″ ]Spoiler Test 1[ /wpspoiler ]
のようにwpspoilerで囲むことでアコーディオンの単発版を出すことができる。
openオプションにtrue/falseを指定することで初期状態を開いている/閉じている、それぞれを指定することができる。
デフォルトはfalse。

Spoiler Title 1

Spoiler Content 1

Spoiler Title 2

Spoiler Content 2


Dialog


[ wptabs ]とは別に[ wpdialog ]もある。
これをコンテンツのどこかに書いておくことでページを開いた時に画面中央にダイアログを出すことができる。
出せるのはJavaScriptでいうところのAlert。Confirmではない。
このページを開いた時に出てきたアラートのshortcodeは

[ wpdialog title="alert" show="drop" hide="explode" ] wpdialogを使用することでアラートを出すことができます。 [ /wpdialog ]


Feeds


[ wptabs ]とは別に[ wpuifeeds ]もある。
[ wpuifeeds url=”http://feeds.reuters.com/reuters/JPTopNews?format=xml” number=”1″ ]
このように書くことで指定URLからのfeedをnumber分だけ受けることができる。

その他注意事項


[ wptabs ]を多重化して設置することはできない。
Crayon Syntax Highlighterとの相性があまり良くない。
SyntaxHighlighter Evolvedは今のところ問題なさそう。

[ wptabs type=”accordion” style=”wpui-achu” effect=”fade” mode=”virtical” ]


Accordion Test 1

Accordion Test 1

Accordion Test 2

Accordion Test 2

Reuters News Feed


wpdialogを使用することで
アラートを出すことができます。

掲載期限を過ぎたらアラートを出す(用済み)

※ 2012/08/27 追記
プラグイン形式でつくりなおしました。
>> Expiration Notice <<
なので、この記事は用済みです。作成方法の詳細はこちらの記事に書きました。

クライアントからの要望は
「掲載期間が過ぎたものを見えなくする」
ではなく
「掲載期間が過ぎたものは、情報が古くなっている旨の警告を出す(古くてもその情報が生きる場合もあるので、情報自体が存在しなくなることは避けたい)」
ということだったので、下書きに戻してしまうPost ExpiratorSimple Expiresは使えない。
ということで、shortcodeで代用することに。
とりあえずAPIのページを見る。。。
で、書いてみた。こんな?

function katz_expired_alert($atts) {
 if (get_post_type(get_the_ID()) == &amp;amp;quot;page&amp;amp;quot;) {
 $katz_pp = get_pages(array('numberposts' =&amp;amp;gt; 1, 'ID' =&amp;amp;gt; get_the_ID()));
 } elseif (get_post_type(get_the_ID()) == &amp;amp;quot;post&amp;amp;quot;) {
 $katz_pp = get_posts(array('numberposts' =&amp;amp;gt; 1, 'ID' =&amp;amp;gt; get_the_ID()));
 }
 foreach($katz_pp as $val) {
 if ($val-&amp;amp;gt;ID == get_the_ID()) {
 $mod_sep1 = explode(&amp;amp;quot; &amp;amp;quot;, $val-&amp;amp;gt;post_modified);
 $mod_date = explode(&amp;amp;quot;-&amp;amp;quot;, $mod_sep1[0]);
 $mod_time = explode(&amp;amp;quot;:&amp;amp;quot;, $mod_sep1[1]);

$mod_mktime = mktime($mod_time[0],$mod_time[1],$mod_time[2],$mod_date[1],$mod_date[2],$mod_date[0]);

extract(shortcode_atts(array('y' =&amp;amp;gt; &amp;amp;quot;&amp;amp;quot;,'m' =&amp;amp;gt; &amp;amp;quot;&amp;amp;quot;,'d' =&amp;amp;gt; &amp;amp;quot;&amp;amp;quot;,'h' =&amp;amp;gt; &amp;amp;quot;&amp;amp;quot;,'i' =&amp;amp;gt; &amp;amp;quot;&amp;amp;quot;,'s' =&amp;amp;gt; &amp;amp;quot;&amp;amp;quot;), $atts));
 $y = $y !== &amp;amp;quot;&amp;amp;quot; ? $y + $mod_date[0] : $mod_date[0];
 $m = $m !== &amp;amp;quot;&amp;amp;quot; ? $m + $mod_date[1] : $mod_date[1];
 $d = $d !== &amp;amp;quot;&amp;amp;quot; ? $d + $mod_date[2] : $mod_date[2];
 $h = $h !== &amp;amp;quot;&amp;amp;quot; ? $h + $mod_time[0] : $mod_time[0];
 $i = $i !== &amp;amp;quot;&amp;amp;quot; ? $i + $mod_time[1] : $mod_time[1];
 $s = $s !== &amp;amp;quot;&amp;amp;quot; ? $s + $mod_time[2] : $mod_time[2];
 $exp_mktime = mktime($h,$i,$s,$m,$d,$y);
 }
 }
 if (($exp_mktime - $mod_mktime) &amp;amp;lt; 0) {
 $alert_html = '&amp;amp;lt;/pre&amp;amp;gt;
&amp;amp;lt;div class=&amp;amp;quot;expiration&amp;amp;quot;&amp;amp;gt;このページの有効掲載期限は&amp;amp;lt;span style=&amp;amp;quot;color: #ff0000;&amp;amp;quot;&amp;amp;gt; '.date(&amp;amp;quot;Y/m/d H:i&amp;amp;quot;,$exp_mktime).' &amp;amp;lt;/span&amp;amp;gt;までです。

記載されていることの正確性を確認ねがいます。&amp;amp;lt;/div&amp;amp;gt;
&amp;amp;lt;pre&amp;amp;gt;
';
 } else {
 $alert_html = '&amp;amp;lt;/pre&amp;amp;gt;
&amp;amp;lt;div class=&amp;amp;quot;non_expiration&amp;amp;quot;&amp;amp;gt;このページは '.date(&amp;amp;quot;Y/m/d H:i&amp;amp;quot;,$exp_mktime).' まで有効です。&amp;amp;lt;/div&amp;amp;gt;
&amp;amp;lt;pre&amp;amp;gt;
';
 }
 return $alert_html;
}
add_shortcode('expire_date', 'katz_expired_alert');

それぞれのコンテンツには[ expire_date d=60 ]とか埋め込む、と。
shortcodeだと入れたくないところには入れなくていいからフレキシブルだねぇ。

スタイルシートも書かないといけないので

.expiration {
	text-align: center;
	border: solid 1px #ff0000;
	background: #ffe1ff;
	color: #222;
	line-height: 18px;
	margin-bottom: 18px;
	padding: 1.5em;
}
.non_expiration {
	text-align: center;
	border: solid 1px #7aaeff;
	background: #d0f0ff;
	color: #222;
	line-height: 18px;
	margin-bottom: 18px;
	padding: 1.5em;
}

というカンジで入れ込む。
これで期限が来たときは
[ expire_date d=-60 ]
[expire_date d=-60]
期限が来ていないときは
[ expire_date y=10 ]
[expire_date y=10]
というカンジで表示される。
正直、期限が来ていないときは何も表示しなくていいとは思う。