ラベル WordPress の投稿を表示しています。 すべての投稿を表示
ラベル WordPress の投稿を表示しています。 すべての投稿を表示

2015年3月6日金曜日

WordPress: Advanced Custom Filed で画像URLを選んでも画像IDが帰ってくる

Advanced Custom Field で設定した値を読み込む場合は、
get_post_meta() ではなく、Advanced Custom Filed の API である get_field() を使う。
http://www.advancedcustomfields.com/resources/get_field/
// デフォルトの関数だと画像 ID が帰ってくる
$url = get_post_meta($post->ID, 'my_custom_image', true);

// 専用の API で取得すると戻り値の設定が有効になり画像 URL が帰ってくる
$url = get_field('my_custom_image', $post->ID);


2015年2月23日月曜日

WordPress: エディタに設定した padding が無視される

WordPress のデフォルトのスタイルに !important が付加されているため、
editor-style.css などで設定したスタイルが無視されている可能性が高い。

該当するスタイルに !important を付加して、
優先順位をデフォルトのスタイルよりも高く設定すれば反映される。
body#tinymce.wp-editor {
    background-color: #FFFFFF;
    padding: 55px 12px 50px 12px !important;
    width: 642px;
}


2015年2月20日金曜日

WordPress: 投稿のアイキャッチ画像を設定できるようにする

WordPress の投稿にはアイキャッチ画像を設定できる。

デフォルトでは設定するインタフェースが表示されていないが、
テーマ内の functions.php に以下のコードを追加すると表示される。
if(function_exists('add_theme_support')) {
    add_theme_support('post-thumbnails');
}



add_theme_support()
http://wpdocs.sourceforge.jp/関数リファレンス/add_theme_support

2015年1月13日火曜日

WordPress: 投稿タイプを変更する

プラグイン「Post Type Switcher」を入れると、
投稿の投稿タイプをあとから変更できるようになる。

プラグインを導入すると投稿の編集画面に、
PostType の項目が出現する。
ここから投稿タイプの振り分けが可能。
もちろんカスタム投稿タイプにも振り分けられる。



カテゴリが存在しないブログから、
WordPress へ記事をインポートした後に
特定の記事だけ別のカテゴリタイプに振り分けるといった場合に使用できる。

2015年1月11日日曜日

WordPress: Collapsing Archives で折り畳み状態を保存しない

https://wordpress.org/plugins/collapsing-archives/
Collapsing Archives を使用すると、
月別アーカイブやカテゴリ一覧を折りたたみ可能な状態にできる。

関数で呼び出す場合はオプションを文字列で渡すことで、
動作を指定できる。

プラグインページには書かれていないが、
折り畳み状態を保存せず、毎回リセットするには userCookies をオフにすれば良い。
collapsArch('useCookies=0');

2015年1月9日金曜日

WordPress: collapsArch() が動かない

サイドバーに表示する月別アーカイブを折りたたみ可能にするために、
プラグイン Collapsing Archives を導入した。

ウィジットして折りたたみ可能なアーカイブを表示するのが基本的な使用方法だが、
プラグインの使用方法によると PHP の関数も使用できたので、
関数による呼び出しを試してみたところ、
クリックしても折りたたみが動作しなかった。

原因は Collapsing Archives が依存している jQuery のバージョンと、
サイトで読み込んでいる jQuery のバージョンが違ったこと。
今回は最新の jQuery に合わせてプラグインのファイルを書き換えることで対応した。

対象ファイルは wp-content/plugins/collapsing-archives/collapsFunctions.js


  • live() 関数を on() 関数に変更(document にバインドして live と同じ動きにする)
  • セレクタの id を削除
こんな感じで動くようになった。

function addExpandCollapse(id, expandSym, collapseSym, accordion) {
  jQuery(document).on('click', 'span.expand', function() {
    if (accordion==1) {
      var theDiv = jQuery(this).parent().parent().find('span.collapse').parent().children('div');
      jQuery(theDiv).hide('normal');
      jQuery(this).parent().parent().find('span.collapse').removeClass('collapse').addClass('expand');
      createCookie(theDiv.attr('id'), 0, 7);
      jQuery(this).parent().parent().find('span.sym').html(expandSym);
      //jQuery('#' + id + ' .expand .sym').html(expandSym);
    }
    expandArch(this, expandSym, collapseSym);
    return false;
  });
  jQuery(document).on('click', 'span.collapse', function() {
    collapseArch(this, expandSym, collapseSym);
    return false;
  });
}

2015年1月8日木曜日

WordPress: アーカイブで前後のページへ移動するリンク

date.php や archive.php, category.php などのアーカイブでは、
デフォルトで 1 ページに 10 記事までしか表示されない。

1ページに10記事以上存在する場合に、
前後のページへ移動するリンクは以下の関数で生成できる。
<?php previous_posts_link() ?>
<?php next_posts_link() ?>

2014年12月22日月曜日

WordPress: 既存サイトの WordPress 化で改行が入ってしまう

既存サイトのソースコードを WordPress のエディタの「テキスト」モードで貼り付けていけば大丈夫・・・と思いきや、改行や <p> タグ周りでうまく行きません。

WordPress では HTML の自動整形機能があり、
「テキスト」モードで改行があると <br> を挿入したり、
先頭のスペースを削除したり、<p> タグを付加したりします。
(ページ表示時にこれらの整形を行います)

自動整形を無効化することもできるのですが、
無効化すると、今度は「ビジュアルモード」でページを作成した時に、
意図的に入れた改行まで無視してしまい、これはこれでダメです。

数日悩み続けたのですが、以下のプラグインがベストでした。
自動整形を無効化できる上に、「ビジュアルモード」での意図的な改行は反映冴えてくれるという便利なプラグインです。

PS Disabled Auto Formatting
http://www.web-strategy.jp/wp_plugin/ps_disable_auto_formatting/#lang_jp

今後、既存サイトの WordPress 化を行う場合は外せないです。

2014年12月20日土曜日

WordPress: Custom Post Type Permalinks で 404 ページが表示される場合

カスタム投稿タイプの月別アーカイブを、
プラグイン Custom Post Type Permalinks で表示したところ、
クリック時に 404 ページが表示されてしまう問題が起きた。

functions.php 内の init アクションフックで、
flush_rewrite_rules() を記述したところ 404 ではなく、
カテゴリごとのアーカイブが表示されるようになった。

<?php

add_action('init', 'init_action');
function init_action() {

    // カスタム投稿タイプの追加など
    register_post_type( ...
    ...

    // リライトルールを更新すると月別アーカイブが表示されるようになる
    flush_rewrite_rules();
}

2014年12月15日月曜日

WordPress: 最新記事の取得

サイドバーなどへ最新記事を出す時に便利。
$posts = get_recent_posts();
foreach($posts as $post) {
    echo '
<li><a href="https://www.blogger.com/'%20.%20get_permalink($post['ID'])%20.%20'">' . $post['post_title'] . '</a></l>
';
}

get_posts() だと WP_Post クラスが取れるけど、get_recent_posts() だと配列が取れる。

2014年12月9日火曜日

WordPress: スラッグに数字がついてしまう

スラッグが他の投稿と被っていると番号が自動的に付けられる。

スラッグ-1
スラッグ-2
スラッグ-3
・・・

これはゴミ箱に入っている投稿も対象になる。
もし、同じスラッグが見当たらない時はゴミ箱の中の投稿とかぶっていないかチェックして、いらない投稿を削除すること。

2014年12月7日日曜日

WordPress: 条件に一致するすべての投稿を取り出す

get_posts() 関数のオプションに
nopaging = 1 を指定するとページ分けを無効化して全データを1度で取得できる。

$posts = get_posts(array(
    'post_type' => 'my_post_type',
    'nopaging' => 1
));

2014年12月6日土曜日

WordPress: 管理者メニューのアイコン

管理者メニューのアイコンは Dashicons が使われている。
https://developer.wordpress.org/resource/dashicons/#format-status

カスタム投稿タイプを定義する際にアイコンを指定すると、
メニュー項目のアイコンとして表示できる。

register_post_type('my_custom_posts', array(
 'description' => 'カスタム投稿',
 'public' => true,
 'menu_icon' => 'dashicons-format-aside',  // ここでアイコンを指定する 
));

2014年12月4日木曜日

WordPress: カスタム投稿タイプのカスタムタクソノミーを更新する

固定ページや投稿などデフォルト投稿タイプのタクソノミーの値を更新する場合は
wp_set_post_terms() を使用する。

この関数はユーザが定義したカスタム投稿タイプには使用できないので要注意。
(空の配列を戻り値として返して、処理は失敗する)

カスタム投稿タイプのタクソノミーを更新したい場合は、
wp_set_object_terms() を代わりに使うこと。

2014年12月3日水曜日

WordPress: 指定した投稿タイプの投稿一覧を取得

get_posts() で可能。
$posts = get_posts(array(
    'post_type' => 'my_post_type'
));


関数リファレンス
get_posts()
http://wpdocs.sourceforge.jp/テンプレートタグ/get_posts

2014年11月30日日曜日

WordPress: 親を持たないタームだけを取り出す

階層構造を持つタクソノミーで親を持たないタームを取り出す方法。
トップレベルだけが取得できる。
$top_level_terms = get_terms('my_taxonomy', array(
    'parent' => 0
));

2014年11月29日土曜日

WordPress: エラー判定

WordPress の関数はエラー発生時に WP_Error クラスのデータを返す。
http://wpdocs.sourceforge.jp/クラスリファレンス/WP_Error

これは is_wp_error() 関数で判定できる。
http://wpdocs.sourceforge.jp/関数リファレンス/is_wp_error

2014年11月28日金曜日

WordPress: wp_editor() の高さ

wp_editor() の第3引数のオプションとして editor_height を指定すると、
WYSIWYG エディタの高さを調節できる。

wp_editor('', 'editor', array('editor_height'=>100));

wp_editor | WordPress Codex
http://codex.wordpress.org/Function_Reference/wp_editor

2014年11月27日木曜日

WordPress: 現在表示しているページのタクソノミーを取得

WordPress ループ内で wp_get_post_terms() で取得できる。
結果は配列で返される。
// カスタムタクソノミー 'taxonomy_type' にセットされた値(ターム)を取得
$term = wp_get_post_terms($post->ID, 'taxonomy_type')[0]->name;

2014年11月24日月曜日

WordPress: 特定の固定ページだけテンプレートを変える

固定ページのテンプレートは、通常 page.php (なければ index.php)が使われる。

特定の固定ページだけ専用のテンプレートを使う場合はスラッグを使うのが簡単。

まず、固定ページ作成画面の右上「表示オプション」から、
「スラッグ」にチェックを入れる。


最下部にスラッグ入力欄が表示されるので、
半角英数字でわかり易い名前を入力する。


テンプレートディレクトリに page-[スラッグ名].php を作成すると、
それを page.php の代わりに使用してくれる。