カテゴリー: WordPress
この記事は2017年4月11日に書かれたものです。情報が古い可能性がありますのでご注意ください。
WordPress の管理画面は、以前よく使ってた Movable Type や他の CMS に比べても、とても分かりやすく出来ていると思いますが、さらに使いやすくするために、案件に応じて不要なメニュー項目を削除したり、逆に投稿一覧画面などにはあったら便利という項目を表示させたりしています。
今回、編集者にカスタムメニューの操作権限を与える必要がありました。
まず、通常編集者はカスタムメニューを操作することはできないので、functions.php に以下を記述して操作権限を与えます。
function add_theme_caps(){
$role = get_role( 'editor' );
$role->add_cap( 'edit_theme_options' );
}
add_action( 'admin_init', 'add_theme_caps' );
これで編集者にも[外観]メニューが表示されますが、[テーマ]や[カスタマイズ]などのサブメニューは操作してほしくないのでこれらを消す必要がありましたが、この内[カスタマイズ]については他のサブメニューと URL の形式が異なるため、ちょっと工夫が必要でした。
“管理画面のメニューから[外観]→[カスタマイズ]を消す” の続きを読む »
カテゴリー: WordPress
この記事は2017年4月7日に書かれたものです。情報が古い可能性がありますのでご注意ください。
学校等のサイトを構築する際に必要になることがある年度別アーカイブ。Movable Type では FiscalYearlyArchives というプラグインを使って簡単に作成できましたが、今回 WordPress で作成する必要があり、いくつかの記事を参考にさせていただきながら構築できました。
まずは、年度別アーカイブリストの出力です。これはこちらの記事を参考にさせていただきました。
[WordPress] 年度別(4月から始まる)アーカイブリストを表示する | 制作メモ | 560DESIGNS
この記事で紹介されているコードを functions.php に記述しておき、<?php my_get_archives_by_fiscal_year(); ?>
で年度別アーカイブリストを出力します。
続いて、年度別アーカイブページの作成。こちらは、サポートフォーラムの以下のトピックを参考にさせていただきました。
トピック: 年度別アーカイブは可能でしょうか? « サポートフォーラム — WordPress
年別アーカイブは不要なので、年毎の表示を年度毎にそっくり入れ替えるこの方法で、年度別アーカイブページが生成できました。
そしてここからは、出力されたアーカイブタイトルなどの調整です。
“年度別アーカイブの作成” の続きを読む »
カテゴリー: WordPress
この記事は2016年12月4日に書かれたものです。情報が古い可能性がありますのでご注意ください。
WordPress の管理画面の「投稿」を「お知らせ」などのラベルに変更する方法はググるとあちらこちらで紹介されています。ここでも紹介しますが(笑)、functions.php 以下のように記述します。
function change_post_menu_label() {
global $menu;
global $submenu;
$menu[5][0] = 'お知らせ';
$submenu['edit.php'][5][0] = 'お知らせ一覧';
$submenu['edit.php'][10][0] = '新規追加';
}
function change_post_object_label() {
global $wp_post_types;
$labels = &$wp_post_types['post']->labels;
$labels->name = 'お知らせ';
$labels->singular_name = 'お知らせ';
$labels->name_admin_bar = 'お知らせ';
$labels->add_new = '新規追加';
$labels->add_new_item = 'お知らせを追加';
$labels->edit_item = 'お知らせの編集';
$labels->new_item = '新規お知らせ';
$labels->view_item = 'お知らせを表示';
$labels->search_items = 'お知らせを検索';
$labels->not_found = 'お知らせが見つかりませんでした';
$labels->not_found_in_trash = 'ゴミ箱にお知らせは見つかりませんでした';
}
add_action( 'init', 'change_post_object_label' );
add_action( 'admin_menu', 'change_post_menu_label' );
一方、投稿の「カテゴリー」や「タグ」のラベルを変更する方法はなかなか見つかりませんでしたが、「項目名の変更 管理画面編 WordPress – WordPress Snippet」でそのヒントが掲載されていました。
“投稿のカテゴリーのラベルを変更する” の続きを読む »
カテゴリー: WordPress
この記事は2016年7月22日に書かれたものです。情報が古い可能性がありますのでご注意ください。
WordPress の投稿画面のスタイルを実際のサイトの見た目に近づけるために、ビジュアルエディタ用の CSS を作成して管理画面に読み込ませることができますね。editor-style.css などとして CSS ファイルを用意し、functions.php の中で
add_editor_style("editor-style.css");
を記述することで、ビジュアルエディタにeditor-style.css が適用されます。
しかし、これでは記事部分の CSS を変更する際に、公開画面用の CSS とビジュアルエディタ用の CSS の両方を編集する必要があります。
そこで editor-style.css を公開画面と共有すると便利です。header.php の中で style.css と共に読み込ませるか、style.css の先頭で editor-style.css をインポートすればよいわけですが、記事部分を囲む要素の class 属性の値を工夫する必要があります。
“ビジュアルエディタと公開画面で CSS を共有する” の続きを読む »
カテゴリー: WordPress
この記事は2016年6月7日に書かれたものです。情報が古い可能性がありますのでご注意ください。
Webページを Facebook 等にシェアした際に適切な情報を表示させる OGP。これを WordPress のテーマファイルに設定する方法は、ググるといろいろ紹介されています。
その中の og:image を設定する部分の記述ですが、大抵、次のように紹介されています。
<?php
$str = $post->post_content;
$searchPattern = '/<img.*?src=(["\'])(.+?).*?>/i'; // 投稿記事に画像があるか調べる
if ( is_single() or is_page() ){ // 記事か固定ページの場合
if ( has_post_thumbnail() ){ // アイキャッチがある場合
$image_id = get_post_thumbnail_id();
$image = wp_get_attachment_image_src( $image_id, 'full');
echo '<meta property="og:image" content="'.$image[0].'">'. "\n";
} elseif ( preg_match( $searchPattern, $str, $imgurl ) && !is_archive() ){ // アイキャッチは無いが画像がある場合
echo '<meta property="og:image" content="'.$imgurl[2].'">'. "\n";
} else { // 画像が1つも無い場合
echo '<meta property="og:image" content="'. get_bloginfo('template_url'). '/images/ogp_image.png">'. "\n";
}
} else { // 記事や固定ページ以外の場合(ホーム、カテゴリーなど)
echo '<meta property="og:image" content="'. get_bloginfo('template_url'). '/images/ogp_image.png">'. "\n";
}
?>
記事ページか固定ページの場合、アイキャッチ画像があればそれを、アイキャッチ画像は無いが本文に画像がある場合はそれを、画像がない場合と記事や固定ページ以外は予め用意したデフォルト画像(上記では ogp_image.png)を設定するという記述です。
ただ、Facebook の仕様では 200×200px に満たないサイズの画像は og:image として設定できないため、上記の記述では、本文内に小さい画像がある場合は、シェアした際に画像が表示されません。
そこで、画像が 200×200px に満たない場合はデフォルト画像を設定するようにしてみました。
“WordPress で og:image を設定する際に小さい画像を除外する” の続きを読む »