
※当サイトにはプロモーションが含まれています。

SWELLで作ったサイトの、この表の2列目の幅をもう少し狭くしてくれ!

おけまるだにゃ。
ワードプレス(WordPress)テーマの「SWELL(スウェル)」には、テーブル幅を調整する機能はあるのですが、2列目、3列目、4列目・・・と、それぞれの列(カラム)ごとにテーブル幅を調整することはできません。
そのため、1、2列目の文章が短く、3列目が長い場合、下記のようなテーブルとなってしまいます。

3列目の幅をもう少し広くしたいにゃ。
確認した限り、このセル幅を調整できる機能はSWELLには見当たらなかったので、テーブル(表)の横幅を自由に変更するJavaScriptを作成してみました。
なお、検証に使用したSWELLの環境は以下のとおりです。
SWELLバージョン:2.14
WordPressバージョン:6.8.x
PHPバージョン:8.2.x
サーバー:エックスサーバー
※セキュリティの観点から、マイナーバージョンの一部をxとさせて頂きます
テーブル(表)の横幅を自由に変更するカスタマイズ
今回、作成したswellのテーブル(表)のセルの横幅を自由に変更するカスタマイズは、JavaScriptを使用します。


①クラスを付与する
まずは、テーブルを作成します。
テーブルを作成したら、その親ブロックを選択して、高度な設定 > 追加 CSS クラス の箇所に以下のクラスを付与します。
nyastom-table-1


②JavaScriptについて
テーブル(表)の横幅を自由に変更するJavaScriptです。
document.addEventListener("DOMContentLoaded", function () {
// テーブルごとの幅設定(列数に合わせて配列指定)
const tableSettings = {
"nyastom-table-1": [10, 20, 70], // 3列の例
"nyastom-table-2": [20, 30, 30, 20], // 4列の例
"nyastom-table-3": [15, 15, 20, 20, 30], // 5列の例
};
// 設定を1つずつ適用
Object.keys(tableSettings).forEach(className => {
const widths = tableSettings[className];
document.querySelectorAll(`figure.${className} table`).forEach(table => {
const firstRow = table.querySelector("tr");
if (!firstRow) return;
const cols = firstRow.children.length;
if (cols !== widths.length) return; // 列数と設定が一致する場合のみ適用
// 各列に幅を割り当てる
for (let i = 0; i < cols; i++) {
table.querySelectorAll("tr").forEach(row => {
if (row.children[i]) {
row.children[i].style.width = widths[i] + "%";
}
});
}
});
});
});

上記のJavaScriptについて説明します。
テーブルごとの幅設定
テーブルごとの幅の設定は、下記の箇所でおこなっています。
"nyastom-table-1": [10, 20, 70], // 3列の例
"nyastom-table-2": [20, 30, 30, 20], // 4列の例
"nyastom-table-3": [15, 15, 20, 20, 30], // 5列の例
[10, 20, 70]という箇所で、1列目の幅が10%、2列目の幅が20%、3列目の幅が70%になるように設定をしています。
つまり、nyastom-table-1というクラスを付与すると、1列目の幅が10%、2列目の幅が20%、3列目の幅が70%のテーブルになります。
もちろん、この数値は変更可能なので、[10, 10, 80]とすれば、1,2列目が10%、3列目の幅が70%になります。
同じページに複数のテーブルを記載したい場合
たとえば、
- 1つ目のテーブルが、3列で「1列目10%、2列目20%、3列目70%」
- 2つ目のテーブルが、3列で「1列目50%、2列目40%、3列目10%」
の場合は、下記のように記載します。
"nyastom-table-1": [10, 20, 70],
"nyastom-table-2": [50, 40, 10],
そして、それぞれのクラスnyastom-table-1、nyastom-table-2を適用したいテーブルの追加 CSS クラスに記載します。
JavaScriptを記載する箇所
JavaScriptは、投稿ページ(固定ページ)の下方にある「カスタムCSS & JS」欄に記載します。
そうすることで、このテーブル幅の変更はそのページだけに適用され、他のページで競合する心配がありません。

セルの幅を調整して、すべての行が1行になったにゃ。

なお、数値は全て半角で記載する必要があるから気を付けるにゃ
補足
このようなJavaScriptを使用しなくても、カスタムHTMLから、width=”30%”のように記載することで調整することも可能です。
ただし、そうすると、このテーブルは「ビジュアル編集」に戻すことが出来なくなります。

そのため、ビジュアル編集のまま、テーブルのセル幅を調整できるJavaScriptを作成しました。
特定のページに記載したCSSやJavaScriptは、プラグインの「Simple Post Notes」を使ってメモを残しておくと管理がしやすいと思います。
記事の修正内容や注意事項、またはSEO対策(キーワードのメモ等)など、後から記事に手を加えたいときには、メモ機能があると非常に便利です。 今回はそんな機能を実現してくれる、ワードプレス(WordPress)のプラグイン「 …
今回、紹介した方法は「この投稿のみに適用させるJavaScriptの設定」があれば、他のワードプレステーマでも使用可能だと思います。
ご支援のお願い
この記事が役に立ったと感じたら・・・
この記事が少しでもお役に立ったと感じていただけましたら、ぜひ下の“ボタン”をクリックしてお買い物をしていただけると嬉しいです。
ご購入いただいた商品の金額の一部が私に入り、より有益な記事を作るための励みになります。
なお、商品は、ご自身の好きなものをご購入いただければと思います。
無料相談・お問い合わせはこちら