WP Manifestindependent plugin directory
manifest / content / wp_lab_achievement

Lab Achievements Manager self-updates

Wordpress用の業績管理プラグイン

by KSHCI Lab · github.com/dbym4820/wp_lab_achievement · website

0stars
1forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/dbym4820/wp_lab_achievement/archive/refs/heads/main.zip

Ships its own WordPress updater (built-in updater), so new versions show up under Dashboard → Updates.

研究室の業績(論文・発表)をカスタムDBテーブルで管理し,年度・種別フィルタ付きで表示する WordPress プラグイン.

機能一覧

管理画面

機能 説明
業績一覧 登録済み業績の一覧表示.年度・種別でフィルタ,キーワード検索,一括削除が可能
新規追加 / 編集 著者・タイトル・誌名・巻号・DOI 等の書誌情報を入力して業績を登録・更新
CSV インポート CSV ファイルから業績を一括登録(1行目はヘッダー)
CSV エクスポート 全業績を CSV ファイルとしてダウンロード(UTF-8 BOM 付き,Excel 対応)

フロントエンド(ショートコード)

ショートコード 説明
[lab_achievements] 年度別・種別別にグループ化した業績一覧を表示
[lab_awards] 受賞業績のみを一覧表示

[lab_achievements] の属性

属性 デフォルト 説明
year (空) 特定年度のみ表示(例: year="2025"
type (空) 特定の業績種別のみ表示(例: type="journal"
show_filter true フィルタ UI の表示/非表示("true" / "false"

[lab_awards] の属性

属性 デフォルト 説明
year (空) 特定年度のみ表示
type (空) 特定の業績種別のみ表示

フロントエンドのインタラクティブ機能

  • 年度フィルタ: プルダウンで年度を選択して絞り込み
  • 種別フィルタ: プルダウンで業績種別を選択して絞り込み
  • 受賞のみ表示: チェックボックスで受賞業績だけに絞り込み
  • 年度区切りなし表示: チェックボックスで種別のみのフラットなグループ表示に切替
  • 年度ページ内リンク: 年度ナビゲーションバーから各年度セクションへジャンプ
  • 折りたたみ: 各年度セクションは <details> タグで開閉可能

業績種別とキー

lam_achievement_types() 関数で定義される.配列の順序がそのまま表示順序になる.

キー 日本語ラベル 表示順
journal 学術論文 1
letter レター論文 2
review 解説論文 3
book 書籍 4
international 国際会議 5
sig 研究会 6
others 全国大会・その他 7
misc 寄稿 8

カスタマイズ

業績種別の追加・変更

lam_achievement_types() 関数(lab-achievements-manager.php 冒頭)の配列を編集する.

function lam_achievement_types() {
    return array(
        'journal'       => '学術論文',
        'letter'        => 'レター論文',
        'review'        => '解説論文',
        'book'          => '書籍',
        'international' => '国際会議',
        'sig'           => '研究会',
        'others'        => '全国大会・その他',
        'misc'          => '寄稿',
    );
}
  • 種別を追加: 配列に '新キー' => '表示ラベル' を追加
  • 表示ラベルを変更: 値(日本語部分)を書き換える
  • 種別を削除: 対応する行を削除(既存データの achievement_type が残るため注意)

表示順序の変更

表示順序は 2箇所 を揃えて変更する必要がある.

1. lam_achievement_types() の配列順

この配列の定義順がフィルタ UI のプルダウン順序,およびグループ表示時のセクション順序に反映される.

2. SQL の FIELD()

ショートコード内の SQL クエリにある FIELD(achievement_type, ...) の引数順を,lam_achievement_types() と同じ順序に揃える. 該当箇所はファイル内に 2箇所ある.

  • [lab_achievements] 用: lam_shortcode() 関数内
  • [lab_awards] 用: lam_awards_shortcode() 関数内
ORDER BY fiscal_year DESC,
         FIELD(achievement_type,'journal','letter','review','book','international','sig','others','misc'),
         pub_month ASC, sort_order DESC

FIELD() の引数順を変えると,データベースからの取得順が変わる.

各業績のソート順(sort_order フィールド)

同一年度・同一種別内での細かい並び替えには sort_order フィールドを使う.管理画面の「表示順」で設定する.[lab_achievements] では sort_order DESC(大きい値が上),[lab_awards] では sort_order ASC(小さい値が上)で並ぶ.

年度の計算ルール

出版月が 1〜3月の場合,年度は 出版年 - 1 として自動計算される(4月始まりの日本の年度制度に準拠).管理画面で年度を手動入力した場合はそちらが優先される.

スタイルのカスタマイズ

CSS はプラグイン内の lam_enqueue_frontend() 関数でインラインスタイルとして出力される.主要な CSS クラス:

クラス 対象
.lab-achievements-container 全体のコンテナ
.lab-achievements-filters フィルタ UI 領域
.lab-achievements-year-nav 年度ナビゲーションバー
.lab-achievements-year-heading 年度見出し(グラデーション背景)
.lab-achievements-type-heading 業績種別見出し(左ボーダー)
.lab-achievements-list 業績リスト(<ol>
.lab-achievement-item 個別業績(<li>
.lab-ach-award 受賞バッジ
.lab-ach-doi / .lab-ach-link DOI / URL リンク

データベース

プラグイン有効化時にカスタムテーブル {prefix}_lab_achievements が作成される.

カラム 説明
id bigint(20) 主キー(AUTO_INCREMENT)
achievement_type varchar(50) 業績種別キー
authors text 著者(カンマ区切り)
title text タイトル
venue text 発表場所
journal_name varchar(500) 誌名 / 会議名
volume varchar(50)
number varchar(50)
pages varchar(50) ページ
pub_year smallint(4) 出版年
pub_month tinyint(2) 出版月
fiscal_year smallint(4) 年度
is_awarded tinyint(1) 受賞フラグ(0/1)
award_name varchar(500) 受賞名
awardee varchar(500) 受賞者(著者と異なる場合)
doi varchar(255) DOI
url varchar(500) URL
notes text 備考
sort_order int(11) 表示順(同一種別内)
created_at datetime 作成日時
updated_at datetime 更新日時

CSV フォーマット

インポート時の CSV 列順(ヘッダー行必須):

achievement_type, authors, title, venue, journal_name, volume, number, pages,
pub_year, pub_month, fiscal_year, is_awarded, award_name, awardee, doi, url, notes, sort_order
  • achievement_type は英語キー(journal, book 等)でも日本語ラベル(学術論文, 書籍 等)でも可
  • fiscal_year が空の場合,pub_yearpub_month から自動計算される
  • エクスポート CSV には id 列が含まれるが,インポート時は無視される

自動アップデート

GitHub Releases を利用した自動アップデートに対応している.WordPress 管理画面の「更新」やプラグイン一覧から,通常のプラグインと同様にワンクリックで更新できる.

仕組み

  • GitHub API (/repos/dbym4820/wp_lab_achievement/releases/latest) で最新リリースを12時間ごとにチェック
  • リリースタグのバージョンがインストール済みバージョンより新しい場合,WordPress に更新通知が表示される
  • アップデーターは管理画面でのみ読み込まれる(フロントエンドには影響なし)

新バージョンのリリース手順

  1. lab-achievements-manager.php2箇所 のバージョンを更新する
    • LAM_VERSION 定数(例: '1.1.0'
    • プラグインヘッダーの Version: 行(例: Version: 1.1.0
  2. 変更をコミット & プッシュ
  3. GitHub で Release を作成し,タグを付ける(例: v1.1.0
    • タグは v + セマンティックバージョニング形式(v1.0.0, v1.1.0, v2.0.0 等)
    • Release の本文に変更内容を記載すると,WordPress の「詳細を表示」に changelog として表示される
  4. WordPress 管理画面 > 更新 で自動検知される

設定の変更

GitHub リポジトリの情報は lab-achievements-manager.php 冒頭の定数で管理される:

define( 'LAM_GITHUB_OWNER', 'dbym4820' );        // GitHub オーナー名
define( 'LAM_GITHUB_REPO',  'wp_lab_achievement' ); // GitHub リポジトリ名

リポジトリを移行した場合はこれらを変更する.

動作要件

  • WordPress 5.0 以上
  • PHP 7.0 以上

ライセンス

GPL-2.0+