「制作物」カテゴリーアーカイブ

私が制作した各種ツール・サイト・サービス群です。思いつくままに色々作りました。TRPGやwordpressが主ですが、私好みの極端な物が多いです。

wordpress現在のカテゴリーページのアドレス・パーマリンクを取得する方法

wordpressで現在のページを取得する、という関数は実はありません。フロントページならフロントページ、投稿なら投稿のパーマリンク取得関数を利用しないと行けません。

カテゴリーページのパーマリンクを取得するのに少し手間取ったのでメモっておきます。

カテゴリーページのパーマリンク取得

カテゴリーページのパーマリンクを取得するには「get_category_link」を使用します。

    $url     = get_category_link('cat_ID');

カテゴリーIDを指定する事でパーマリンクを取得することが出来ます。

カテゴリーページを表示中なら、グローバル変数の「$cat」にカテゴリーIDが収納されていると思うので、カテゴリーページで現在のパーマリンクを取得したい場合は、

  if(is_category()) {
    $url     = get_category_link($cat);
  }

とでもすればいいかと思います。

wordpress上のあらゆる画像を最適化・変換し軽量化できる「EWWW Image Optimizer」日本語化MOファイル

wordpress上の画像を最適化し、形式の変換まで出来る高機能軽量化プラグインである、「EWWW Image Optimizer」の日本語化MOファイルです。

機械翻訳を元に意訳したため、ご利用は自己責任でお願い致します。

長い文章が多いため間違っている可能性があります。

ダウンロード

高機能SEOプラグインであるWordPress SEO by Yoastの日本語化MOファイル

本家でも日本語化ファイルは提供されていますが、日本語化されていない部分が多いので、個人的に必要だなと思った所を日本語化しました。

機械翻訳を意訳したので、自己責任で利用してください。

プラグインのlungageディレクトリに入れて下さい。

ダウンロード

wp super cacheの日本語が分かりづらいので日本語化MOファイルを作りました

 

wp super cacheはそのままでも日本語にはなっているのですが、なんだかちょっと分かりづらいのですよね。というわけで分かりやすいように日本語化しなおしました。

よく使う「詳細」の上部だけですけれどね。これでかなり負担は減るかと思います。

訳については、機械翻訳を私なりに解釈した物なので利用は自己責任でお願いします。

また、各種設定についての解説についてはこちらをどうぞ→wordpressのキャッシュを制御できるプラグイン「WP Super Cache」の設定項目解説 » aoringo works

ダウンロード

導入はwp super cacheプラグインの「lungage」ディレクトリに入れてください。

wordpressのアドレスからカテゴリ階層を除去するプラグイン「WP No Category Base」

WordPress › WP No Category Base « WordPress Plugins

アドレスの階層は少ない方が良いと良く言われます。特にカテゴリーは子、孫とどんとん階層を深くするとどこまでも深くなりますね。

私のサイトだと、「http://ao-works.net/category/trpg/kancolle-rpg/kan-howto」みたいなものがあったりします。この「WP No Category Base」では、アドレスにある「/category」を除去し、さらには「/category」付きのアドレスにアクセスすると、除去した方のアドレスへとリダイレクトしてくれる素敵仕様です。

導入はインストールして有効化するだけでOKです。

TRPG版艦これ、艦これRPGのハウツー≫aoringo works

きちんと「http://ao-works.net/trpg/kancolle-rpg/kan-howto」になっているのが確認出来ます。

category付きのアドレスに接続してみます。

リダイレクトされました!!

wordpressの記事投稿ページ以外のカテゴリー編集ページなどにビジュアルエディターを表示する

ちょっと特殊な運用ですが、記事投稿画面以外でビジュアルエディターを追加したい場合があると思います。今回はその方法をお教えしますよ。

参考にしたのはこちら→WordPress Snippet | WordPress3.5 エディタ付フィールドを投稿の編集に追加する

<?php
$args = array(
'textarea_rows' => 20,
'teeny' => false,
'quicktags' => true,
);
echo '<input type="hidden" name="exp_editor_field" id="exp_editor_field" />';
wp_editor($text, 'exp_editor', $args);
?>

「$args」にビジュアルエディターの条件を入れます。「textarea_rows」が縦軸の大きさですね。
「inputタグ」は実際にエディターが表示される場所です。
「wp_editor($text, ‘exp_editor’, $args);」でビジュアルエディターを呼び出します。「$text」には表示するコンテンツ内容が入ります。「exp_editor」は、$_POSTで飛ばすときの変数名です。

受け取るときは、$_POST[‘exp_editor’]で受け取る事が出来ます。

wordpressカテゴリーにメタ情報を追加し名前とページタイトルを別にする

wordpressのカテゴリー設定は、拘ると少し設定できる情報が少ないです。

せめてカテゴリーの名前と、カテゴリーページで表示するタイトルは別々に設定できればなあと思ってました。

こんな感じで、タイトル見出しだけ表示を変えたいわけです(本来ならここは【制作物】というカテゴリー名が入る所)

そういうわけで、カテゴリー情報に追加設定ができるようにしちゃいましょう。

基本的な方法はこちら→WordPressのカテゴリーにカスタムフィールドを追加する | webOpixel参考になりましたありがとうございます。

カテゴリー設定画面に入力項目を追加する

/**
* カテゴリー編集画面に項目を追加する
*/
add_action('edit_category_form_fields', 'extra_category_fields');
function extra_category_fields($tag) {
$t_id = $tag->term_id;
$cat_meta = get_option("cat_meta_data");
?>
<tr class="form-field">
<th>見出しタグ</th>
<td><input type="text" name="cat_meta_data" value="<?php echo esc_html($cat_meta[$t_id]) ?>"/></td>
</tr>
<?php
}

「get_option(“cat_meta_data”)」で情報を読み出し、実際にinputのvalueに埋め込んでます。参考元では情報を一つずつ収納してましたが、それだとカテゴリーに一つ項目が増えるので、全てまとめてarrayにして収納するようにしています。

カテゴリー情報を保存する

//カテゴリー保存コード

add_action('edited_term', 'save_extra_category_fileds');
function save_extra_category_fileds($term_id) {
  if(isset($_POST['cat_meta_data'])) {
    $t_id                  = $term_id;
    $cat_meta_array        = get_option("cat_meta_data");
    $cat_meta_array[$t_id] = $_POST['cat_meta_data'];
    update_option("cat_meta_data", $cat_meta_array);
  }
}

カテゴリーが保存されるタイミングで情報を「cat_meta_data」に収納しています。これでcat_meta_dataには各カテゴリーの「見出しタグ」情報が追加されていきます。

カテゴリーページに表示する

テーマの「category.php」を開きます。大抵の場合見出しタグには「<?php single_cat_title(); ?>」があると思います。

<?php
$cat = get_category($cat);
$cat_meta = get_option("cat_meta_data")[$cat->term_id];
?>
<h1 class="pageTitle"><?php echo isset($cat_meta) ? $cat_meta : single_cat_title(); ?></h1>

まず$cat_dataにカテゴリー情報を読み込ませ、$cat_metaに「get_option(“cat_meta_data”)[$cat_data->term_id];」で先程設定したカテゴリー見出しタグ情報を収納します。

あとはh1の中でカテゴリー見出しタグ情報が設定されているかどうかを確認し、カテゴリー名かカテゴリー見出しタグのどちらかを出力します。

wordpressの記事投稿画面を使いやすくカスタマイズするプラグイン「aoringo post ui costomize」

wordpressの記事投稿画面はシンプルで触りやすくはあるのですが、個人的にはエディター部分とカテゴリー部分をもうちょっと弄りたい感じです。

というわけで投稿画面をカスタマイズできるプラグインを作製しました。

コードに関しては、大部分を→解決!WordPress投稿画面のカテゴリーをカスタマイズする方法 | 株式会社LIGさんから引用しました。

その名も「aoringo post ui costomize」です。

エディタの高さ幅とカテゴリー一覧を弄る事ができます。

エディタ高さ最低幅

なんのプラグインの影響か、エディターの縦幅が狭い時があるんですよね。というわけで強制的に高さを設定できます。

数値を入力すれば、

うひょひょーいひろーい

 カテゴリー一覧

カテゴリー一覧関係は色々ありますよ。好みによって設定してあげてくださいね。

高さ制限解除

カテゴリーリストの高さ制限を解除しちゃいます。どこまでも伸びます。沢山カテゴリーがあるとあの小さな枠では大変ですからね。

 並べ変え禁止

カテゴリーを設定すると並び順を無視して設定された項目が一番上にきますね。それを禁止しちゃいます。

こんな感じです。

ラジオボタン化

カテゴリーの選択をチェックボックスからラジオボタンに変更します。カテゴリーを複数登録したくない人はどうぞ

最下層カテゴリのみ選択可

親子関係にあるカテゴリの、最下層のカテゴリだけを選択できるようになります。

開閉式

カテゴリーの親子関係のうち、子を非表示にしてクリックで開閉できるようにします。

親子色分け

カテゴリーの親子で簡単に色分けします。

 ダウンロード

割と適当コードなので、設定によってはCSSが崩れます。適当に修正してください。

ダウンロード

wordpress記事投稿画面のカテゴリー一覧を開閉式にする

大量のカテゴリーを抱えているブログは多いと思います。記事投稿の時って大変ですよね。分かります。分かりますよ!!!!

というわけで投稿画面のカテゴリー一覧を開閉式にしちゃいましょう。まずはカテゴリー一覧部分をカスタマイズします。

今回の記事はこの記事の続きからとなります。→wordpress投稿画面のカテゴリーメタボックスを変更する » aoringo works

というわけでwordpressのカテゴリー一覧を開閉できるように頑張っていきましょう!

 

function start_el(&$output, $category, $depth, $args, $id = 0) {
extract($args);
if(empty($taxonomy))
$taxonomy = 'category';
if($taxonomy == 'category')
$name = 'post_category';
else
$name = 'tax_input[' . $taxonomy . ']';
//親カテゴリの時はチェックボックス表示しない
// print_r($category);
$cat_child = get_category_children($category->term_id);
$class = $category->parent == 0 ? ' class="category_parent"' : ' class="category_child"';
if($category->parent == 0) {
$class = ' class="category_parent"';
} elseif($cat_child !== "") {
$class = ' class="category_child"';
} else {
$class = null;
}
if($cat_child !== "") {
$output .= "n<li id='{$taxonomy}-{$category->term_id}'>" . "<span$class>" . esc_html(apply_filters('the_category', $category->name)) . "</span>";
} else {
$output .= "n<li id='{$taxonomy}-{$category->term_id}'$class>" . '<label class="selectit"><input value="' . $category->term_id . '" type="radio" name="' . $name . '[]" id="in-' . $taxonomy . '-' . $category->term_id . '"' . checked(in_array($category->term_id, $selected_cats), true, false) . disabled(empty($args['disabled']), false, false) . ' /> ' . esc_html(apply_filters('the_category', $category->name)) . '</label>';
}
}
}

ちゃちゃっとコードを見ていきましょう。前回からコードが少しだけ変わりました。まず、スライドをするためにカテゴリー名である「esc_html(apply_filters(‘the_category’, $category->name))」をspanタグで囲みます。

spanタグの中身である「$class」は親か子供がいるかで「class=hogehoge」が入るようになってます。

この時点ではまだこんな感じ。前回と見た目は変わりません。

<li id = 'category-4' ><span class="category_parent" > エンタメ</span ><ul class='children' >
<li id = 'category-293' ><label class="selectit" ><input value = "293" type = "radio" name = "post_category[]" id = "in-category-293" /> 音楽</label ></li >
<li id = 'category-3' ><span class="category_child" > 本</span > <ul class='children' >
<li id = 'category-14' ><label class="selectit" ><input value = "14" type = "radio" name = "post_category[]" id = "in-category-14" /> 書籍</label ></li >

ソースがしっかりと書き換わっているかどうか確認もしておきます。

次に、投稿画面にjavascript記述を追加し、jQueryによるスライド機能を追加します。

function post_output_css() {
$pt = get_post_type();
if($pt == 'post') { //投稿の場合はpost
?>
ul.children{ display :none; }

</style>
<script>
jQuery(document).ready(function () {
jQuery('#categorychecklist ul.children:has(input:checked)').css("display", "block");
//クリックイベント
jQuery('.category_parent,.category_child').click(function () {
jQuery(this).next('.children').stop(true, true).slideToggle();
});
</script>
<?php
}
}

add_action('admin_head', 'post_output_css');

span「category_parent」もしくは「category_child」がクリックされると、同じレベルにある次のulクラス「children」のカテゴリーが開閉します。この時ul.childrenはcssによりデフォルト非表示に。

そんなわけでこんな感じにコンパクトになりました! 素敵ですね。