PHPackages                             itmar/wpsetting-class-package - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. itmar/wpsetting-class-package

ActiveLibrary

itmar/wpsetting-class-package
=============================

This package contains classes that provide a GUI for configuring various settings in WordPress.

v1.3.4(5mo ago)06MITPHP

Since Mar 17Pushed 5mo ago1 watchersCompare

[ Source](https://github.com/itmaroon/wpsetting-class-package)[ Packagist](https://packagist.org/packages/itmar/wpsetting-class-package)[ RSS](/packages/itmar-wpsetting-class-package/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (1)Versions (17)Used By (0)

wpsetting-class-package
=======================

[](#wpsetting-class-package)

概要
--

[](#概要)

WordPressの設定で管理画面のメニューから設定することができないものをGUIで設定できるようにしたものを集めたパッケージです。
このパッケージにおさめられたクラスは全てシングルトンモデルです。newでインスタンスをすることはできません。 インスタンスはget\_instanceメソッドで呼び出してください。

インストール
------

[](#インストール)

コマンドプロンプト等から次のように入力してください。

```
composer require itmar/wpsetting-class-package

```

収納されている名前空間・クラス
---------------

[](#収納されている名前空間クラス)

namespace Itmar\\WpsettingClassPackage
class ItmarRedirectControl
class ItmarRevisionClass
class ItmarModifyPost
class ItmarSecuritySettings
class ItmarSEOSettings
class ItmarDbAction

変更履歴
----

[](#変更履歴)

= 1.3.4 =
ItmarDbActionクラスのjson\_import\_dataメソッドでサムネイルとメディアとの紐づけを切るロジックを修正。

= 1.3.3 =
ItmarDbActionクラスのjson\_import\_dataメソッドでサムネイル登録の際、nullがわたった場合にメディアとの紐づけを切るようにした。

= 1.3.2 =
ItmarDbActionクラスのjson\_import\_dataメソッドでカテゴリ等の登録の際、修正前に一旦過去のカテゴリ等を消去することで、新たな登録が適切に反映されるように修正した。

= 1.3.1 =
ItmarDbActionクラスのset\_mediaメソッドの$file\_path引数に配列がセットされたときの処理を新たに加えた

= 1.3.0 =
ItmarDbCacheクラスを新たに加えた

= 1.2.0 =
ItmarDbActionクラスを新たに加えた

= 1.1.0 =
実用化のためのマイナーバージョンアップ

= 1.0.0 =
最初のリリース

メソッドの機能と引数
----------

[](#メソッドの機能と引数)

### 名前空間・クラス

[](#名前空間クラス)

\\Itmar\\WpSettingClassPackage\\ItmarRedirectControl

### 説明

[](#説明)

ItmarRedirectControlのインスタンスを次のように呼び出します。

```
\Itmar\WpSettingClassPackage\ItmarRedirectControl::get_instance();

```

その上で、

```
\Itmar\WpSettingClassPackage\ItmarRedirectControl::get_instance()->render_settings_section();

```

これによってレンダリングされたチェックボックスをチェックすると、サイトにアクセスするためのURLがドメインのルートURLになります。
この機能が働くのはWordPressサイトがサブドメインにインストールされた場合だけです。ルートドメインにインストールされている場合はチェックするとエラーになります。

### 名前空間・クラス

[](#名前空間クラス-1)

\\Itmar\\WpSettingClassPackage\\ItmarRevisionClass

### 説明

[](#説明-1)

ItmarRevisionClassのインスタンスを次のように呼び出します。

```
\Itmar\WpSettingClassPackage\ItmarRevisionClass::get_instance();

```

すると、次のようなGUIが投稿編集画面のサイドバーに表示されるようになります。

[![image.png](/assets/revision-scsho.png)](/assets/revision-scsho.png)

このテキストボックスに数値を入れることで、投稿ごとのリビジョンの最大保存数を設定することができます。 なお、デフォルトのリビジョンの最大保存数はwp-config.phpに次の記述を行うことでしか設定することはできません。

```
define('WP_POST_REVISIONS', 5); // 5個までリビジョンを保存

```

この記述はwp-config.phpを直接編集する必要があります。 ただし、この設定があれば、その数字がテキストボックスに表示されます。 空欄の場合は、設定がなく、リビジョンの最大保存数は無制限になります。

### 名前空間・クラス

[](#名前空間クラス-2)

\\Itmar\\WpSettingClassPackage\\ItmarDbAction

#### メソッドの説明

[](#メソッドの説明)

json\_import\_data($groupArr, $uploaded\_medias, $import\_mode)
$groupArr内の情報で投稿を実行する。それと同時に$uploaded\_mediasに渡されたファイルを基にメディアライブラリにメディアファイルをアップロードし、そのメディアを投稿内のメディア情報（アイキャッチ画像、投稿本文内メディア情報、ACF画像フィールド）とリンクさせる。

##### 引数

[](#引数)

- `$groupArr` array 名前付き配列を要素とする配列を格納する。 この配列の要素一つで１投稿がインポートされる。本投稿とリビジョンを併せて、この配列に格納することで、リビジョンを含めた投稿のインポートが可能である。 各添え字付き要素の生成における注意点は以下のとおり。
- ID ···· 投稿ID。$import\_modeがupdateで、指定したIDが存在すれば、その投稿を更新。ここで指定したIDが存在しないか、0の時は新規に投稿する（number）
- title ···· タイトル（string）
- content ···· 投稿本文（string）
- excerpt ···· 抜粋（string）
- date ···· 2025-02-16 13:16:53などの形式の文字列（string）
- author ···· ユーザーのID。省略するとカレントユーザーのIDが自動で入る（number）
- post\_name ···· パーマリンクの文字列。省略可（string）
- post\_type ···· revisionを指定すれば、先行するpost\_statusがinherit以外の投稿タイプのIDがpost\_parentにセットされる（string）
- post\_status ···· revisionやattachimentの場合は必ずinheritを指定。省略不可（string）
- edit\_date ···· 更新モードで、dateを指定するときは必ずtrueを設定（boolean）
- post\_parent ···· 本投稿のID。自動入力なので省略可（number）
- thumbnail\_url ···· アイキャッチ画像のURL、エクスポートの基となる（string）
- thumbnail\_path ···· アイキャッチ画像のインポート元のフィルパス（string）
- thumbnail\_id ···· アイキャッチ画像のメディアライブラリのID。thumbnail\_pathが優先（number）
- terms ···· $taxonomy =&gt; $terms形式の連想配列（array）
- custom\_fields ···· $field\_name =&gt; $value形式の連想配列（array）
- acf\_fields···· $field\_name =&gt; $value形式の連想配列。グループ内のフィールドの時はgroup\_$field\_name =&gt; $valueとする（array）
- comments ···· 以下の連想配列を要素とする配列（array）

    - comment\_ID ···· 本コメントのID。自動入力なので省略可（number）
    - comment\_post\_ID ···· 本投稿のID。省略不可（number）
    - comment\_author ···· コメント投稿者名（string）
    - comment\_author\_email ···· コメント投稿者のメールアドレス（string）
    - comment\_date ···· 2025-02-16 13:16:53などの形式の文字列（string）
    - comment\_date\_gmt ···· 2025-02-16 13:16:53などの形式の文字列。GMT変換したもの（string）
    - comment\_content ···· コメント本文（string）
    - comment\_karma
    - comment\_approved
    - comment\_type
    - comment\_parent ···· 返信先のコメントID（number）
    - user\_id
    - meta
- `$uploaded_medias` array FormData で送られたBlob形式ファイルの配列
    フロントエンドからのJavaScriptによる送信例

```
const formData = new FormData();
formData.append('action', 'itmar_post_ajax');
formData.append('nonce', ajax_object.nonce);

const blob = await fetch(url).then(res => res.blob());
const path = new URL(url).pathname;
const name = path.split('/').pop().split('?')[0] || `insta_carousel_${i}.jpg`;
const file = new File([blob], name, {
    type: blob.type
});

formData.append('media_files', file);

const response = await fetch(ajaxUrl, {
    method: 'POST',
    body: formData,
});

```

- `$import_mode` string 新規投稿のとき ···· create 更新のとき ···· update

#### メソッドの説明

[](#メソッドの説明-1)

set\_media($media\_array, $post\_id, $file\_path, $media\_type)
$media\_arrayで渡されたアップロードファイルの配列から、ファイル名が$file\_pathと一致するものを選び出し、メディアライブラリに登録するとともに、$post\_idのIDをもつ投稿に関連付ける。関連付けの方法は次の３とおり。 $file\_pathが配列で複数のメディアのパスを渡した場合にも対応する。

- アイキャッチ画像 $media\_typeがthumbnail
- ACFメディア $media\_typeがacf\_field
- コンテンツ内メディア $media\_typeがcontent

##### 引数

[](#引数-1)

- `$media_array` array FormData で送られたBlob形式ファイルの配列
- `$post_id` number 関連付ける投稿のID（必須）
- `$file_path` string 選び出すファイル名（必須）
- `$media_type` string 関連付けの種類（必須） thumbnail、acf\_field、contentのいずれか

##### 戻り値

[](#戻り値)

次の要素を連想配列で返す。

- status ···· 'success','error'
- message ···· 結果のメッセージ文字列
- attachment\_id ···· メディアライブラリのID,
- attachment\_url ···· メディアライブラリのURL,

#### メソッドの説明

[](#メソッドの説明-2)

is\_acf\_active()
ACFまたはSCFがインストールされているかを判定する

##### 戻り値

[](#戻り値-1)

boolean型の判定値を返す。

#### メソッドの説明

[](#メソッドの説明-3)

get\_post\_type\_label($post\_type)
$post\_typeに当てはめられている投稿タイプのラベルを返す。

##### 引数

[](#引数-2)

- `$post_type` string 投稿タイプのスラッグ

##### 戻り値

[](#戻り値-2)

string型でラベルを返す。登録がない場合はUnregistered Post Typesを返す

#### メソッドの説明

[](#メソッドの説明-4)

get\_attachment\_id\_by\_file\_path($file\_path)
メディアライブラリ内のメディアから、$file\_pathと一致するファイルパスをもつメディアのIDを返す。

##### 引数

[](#引数-3)

- `$file_path` string フォルダ名を除いたファイル名。

##### 戻り値

[](#戻り値-3)

メディアIDをnumberで返す。

#### メソッドの説明

[](#メソッドの説明-5)

get\_acf\_field\_key($meta\_key)
ACFで登録されたフィールドの meta\_key（例：my\_fieldやgroup\_field\_subfield）から、内部のフィールドキー（例：field\_xxxxx）を逆引きで取得する関数

##### 引数

[](#引数-4)

- `$meta_key` string ACFで保存されたカスタムフィールドの meta\_key。通常は get\_post\_meta() や $\_POST などに現れるキー。グループフィールドやリピーター内のフィールドにも対応。

##### 戻り値

[](#戻り値-4)

該当する ACF フィールドの field\_key。見かからない場合はfalse

#### メソッドの説明

[](#メソッドの説明-6)

insert\_comments\_with\_meta($comments\_data, $post\_id, $override\_flg)
$comments\_dataを基に$post\_idが示す投稿にコメントを挿入する。

##### 引数

[](#引数-5)

- `$comments_data` array 次のコードで取得できる連想配列

```
$args = array(
    'post_id' => $post_id,
    'status'  => 'approve',
    'orderby' => 'comment_date',
    'order'   => 'ASC'
);

$comments = get_comments($args);

```

- `$post_id` number 関連付ける投稿のID（必須）
- `$override_flg` boolean 既存のコメントIDを持つコメントがあれば上書きするかどうかのフラグ

##### 戻り値

[](#戻り値-5)

登録数をnumberで返す。

#### メソッドの説明

[](#メソッドの説明-7)

get\_comments\_with\_meta($post\_id)
$post\_idが示す投稿に関連付けられているコメントを返す

##### 引数

[](#引数-6)

- `$post_id` number 対象とする投稿のID

##### 戻り値

[](#戻り値-6)

次のような連想配列を配列で返す

```
array(
    'comment_ID'         => strval($comment->comment_ID),
    'comment_post_ID'    => strval($comment->comment_post_ID),
    'comment_author'     => $comment->comment_author,
    'comment_author_email' => $comment->comment_author_email,
    'comment_date'       => $comment->comment_date,
    'comment_date_gmt'   => $comment->comment_date_gmt,
    'comment_content'    => $comment->comment_content,
    'comment_karma'      => strval($comment->comment_karma),
    'comment_approved'   => strval($comment->comment_approved),
    'comment_type'       => $comment->comment_type,
    'comment_parent'     => strval($comment->comment_parent),
    'user_id'            => strval($comment->user_id),
    'meta'               => $meta_formatted // メタデータを "meta" に格納
);

```

### 名前空間・クラス

[](#名前空間クラス-3)

\\Itmar\\WpSettingClassPackage\\ItmarDbCache

#### クラスの概要

[](#クラスの概要)

`ItmarDbCache` は `$wpdb` を用いた WordPress の DB 操作にキャッシュ機構を付加するためのユーティリティクラスです。Plugin Check で警告されがちな直接DB呼び出しに対し、キャッシュ処理 (`wp_cache_get` / `wp_cache_set` / `wp_cache_delete`) を適切に加えることで、パフォーマンスとコード品質を両立させます。

---

#### メソッドの説明

[](#メソッドの説明-8)

---

### `get_var_cached($sql, $cache_key, $expire = 3600)`

[](#get_var_cachedsql-cache_key-expire--3600)

SQL文字列を実行し、結果をキャッシュ付きで1行1列取得する。

##### 引数

[](#引数-7)

- `string $sql` : 実行するSQL（`$wpdb->prepare()`済み推奨）
- `string $cache_key` : キャッシュキー
- `int $expire` : キャッシュの有効期間（秒）

##### 戻り値

[](#戻り値-7)

- `mixed` : 結果行の1カラム目の値

##### 使用例

[](#使用例)

```
$sql = $wpdb->prepare("SHOW TABLES LIKE %s", $table_name);
$result = ItmarDbCache::get_var_cached($sql, 'table_exists_' . md5($table_name));
```

---

### `get_row_cached($sql, $cache_key, $expire = 3600, $output = ARRAY_A)`

[](#get_row_cachedsql-cache_key-expire--3600-output--array_a)

SQL文字列を実行し、1行のデータをキャッシュ付きで取得する。

##### 引数

[](#引数-8)

- `string $sql` : 実行するSQL
- `string $cache_key` : キャッシュキー
- `int $expire` : キャッシュの有効期間（秒）
- `string $output` : 返却形式。`OBJECT`, `ARRAY_A`, `ARRAY_N` のいずれか（デフォルト：`ARRAY_A`）

##### 戻り値

[](#戻り値-8)

- `mixed` : 1行の結果データ

##### 使用例

[](#使用例-1)

```
$sql = $wpdb->prepare("SELECT * FROM {$table} WHERE token = %s", $token);
$row = ItmarDbCache::get_row_cached($sql, 'row_token_' . md5($token));
```

---

### `update_and_clear_cache($table, $data, $where, ?array $data_format = null, ?array $where_format = null, array $cache_keys = [])`

[](#update_and_clear_cachetable-data-where-array-data_format--null-array-where_format--null-array-cache_keys--)

レコードを更新し、指定したキャッシュキーのキャッシュを削除する。

##### 引数

[](#引数-9)

- `string $table` : 対象テーブル名
- `array $data` : 更新データ
- `array $where` : WHERE 条件
- `?array $data_format` : 更新データのフォーマット（`%s`など）
- `?array $where_format` : WHERE 条件のフォーマット
- `array $cache_keys` : 削除対象のキャッシュキー配列

##### 戻り値

[](#戻り値-9)

- `int|false` : 成功時は更新された行数、失敗時は false

##### 使用例

[](#使用例-2)

```
$result = ItmarDbCache::update_and_clear_cache(
    $wpdb->users,
    ['user_pass' => $hashed_password],
    ['ID' => $user_id],
    ['%s'],
    ['%d'],
    ['user_cache_' . $user_id]
);
```

---

### `delete_and_clear_cache($table, $where, ?array $where_format = null, array $cache_keys = [])`

[](#delete_and_clear_cachetable-where-array-where_format--null-array-cache_keys--)

レコードを削除し、指定したキャッシュキーのキャッシュを削除する。

##### 引数

[](#引数-10)

- `string $table` : 対象テーブル名
- `array $where` : WHERE 条件
- `?array $where_format` : WHERE 条件のフォーマット
- `array $cache_keys` : 削除対象のキャッシュキー配列

##### 戻り値

[](#戻り値-10)

- `int|false` : 削除された行数、または失敗時は false

##### 使用例

[](#使用例-3)

```
$result = ItmarDbCache::delete_and_clear_cache(
    $table,
    ['id' => $row['id']],
    ['%d'],
    ['row_token_' . md5($row['token'])]
);
```

---

### `set_cache_group($group)`

[](#set_cache_groupgroup)

キャッシュのグループ名を変更する。

##### 引数

[](#引数-11)

- `string $group` : グループ名（デフォルトは `itmar_cache`）

##### 戻り値

[](#戻り値-11)

- なし

##### 使用例

[](#使用例-4)

```
ItmarDbCache::set_cache_group('my_plugin_group');
```

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance70

Regular maintenance activity

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~17 days

Recently: every ~43 days

Total

16

Last Release

167d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c3e40f932943bb0f71cf938d02ccaed312c797bc2b09b81fd2c47f1a8d49ef0f?d=identicon)[itmaroon2024](/maintainers/itmaroon2024)

---

Top Contributors

[![itmaroon](https://avatars.githubusercontent.com/u/15277545?v=4)](https://github.com/itmaroon "itmaroon (21 commits)")

### Embed Badge

![Health badge](/badges/itmar-wpsetting-class-package/health.svg)

```
[![Health](https://phpackages.com/badges/itmar-wpsetting-class-package/health.svg)](https://phpackages.com/packages/itmar-wpsetting-class-package)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
