Slide 1

Slide 1 text

a-blog cms zoom up 2021/03 WordPressサイトから a-blog cmsへの移⾏案件で⼯夫したこと 2021年3⽉9⽇ 筒井 志信

Slide 2

Slide 2 text

PHPに偏った内容も出てきますので、 肩の⼒を抜いてご視聴いただければ幸いです。 実⽤的要素 芸⼈的要素 13 本⽇お話する内容

Slide 3

Slide 3 text

「先頭に固定表⽰」 を実装

Slide 4

Slide 4 text

WordPressは任意の記事を先頭に表⽰できる

Slide 5

Slide 5 text

記事に固定表⽰⽤のカスタムフィールドを作成

Slide 6

Slide 6 text

記事に固定表⽰⽤のカスタムフィールドを作成

Slide 7

Slide 7 text

Entry_Summaryの表⽰設定の「ソートフィールド名」を設定 表⽰順を「フィールド(降順)」 ソートフィールド名を「entry_pickup」で設定

Slide 8

Slide 8 text

「先頭に固定表⽰」を実装 応⽤編

Slide 9

Slide 9 text

記事に優先表⽰⽤のカスタムフィールドを作成

Slide 10

Slide 10 text

記事に固定表⽰⽤のカスタムフィールドを作成

Slide 11

Slide 11 text

Entry_Summaryの表⽰設定の「ソートフィールド名」を設定 表⽰順を「数値フィールド(降順)」 ソートフィールド名を「entry_priority」で設定

Slide 12

Slide 12 text

アイキャッチ画像を インポートして表⽰

Slide 13

Slide 13 text

WordPressのエクスポート機能でエクスポート

Slide 14

Slide 14 text

a-blog cmsのインポート機能でインポート

Slide 15

Slide 15 text

a-blog cmsのインポート機能では アイキャッチ画像がインポートされない

Slide 16

Slide 16 text

アイキャッチ画像を表⽰ CSVインポート \正攻法なら/

Slide 17

Slide 17 text

WP All ExportなどでCSV形式でエクスポートする

Slide 18

Slide 18 text

WP All ExportなどでCSV形式でエクスポートする ただし、a-blog cms側のentry_idとの突き合わせや、 複数の画像が記載されているので調整が必要

Slide 19

Slide 19 text

アイキャッチ画像を表⽰ サムネイルIDを使⽤

Slide 20

Slide 20 text

インポート時にmeta_keyからアンダースコアを削除する post_metaの部分がカスタムフィールドとして登録される ただし、先頭にアンダースコアが ついているものは無視される

Slide 21

Slide 21 text

インポート時にmeta_keyからアンダースコアを削除する アイキャッチ画像のカスタムフィールドのキーから アンダースコアを外すことで カスタムフィールドとして登録する

Slide 22

Slide 22 text

通常のa-blog cmsの記事はサムネイルを表⽰する

Slide 23

Slide 23 text

アイキャッチ画像のIDがあればIDを表⽰する

Slide 24

Slide 24 text

アイキャッチ画像のURLはデータベースに格納されている

Slide 25

Slide 25 text

アイキャッチ画像のIDに対し、校正オプションを適⽤する

Slide 26

Slide 26 text

アイキャッチ画像のIDから画像のパスを取得する

Slide 27

Slide 27 text

a-blog cmsの記事のサムネイル表⽰ WordPressの記事のサムネイル表⽰

Slide 28

Slide 28 text

アイキャッチ画像を表⽰ 本⽂中のURLを使⽤

Slide 29

Slide 29 text

本⽂に画像を登録していたら表⽰する

Slide 30

Slide 30 text

本⽂中にsrc=“wp/wp-content/uploads/” があれば取得

Slide 31

Slide 31 text

本⽂を整形して表⽰

Slide 32

Slide 32 text

本⽂の微調整を校正オプションで対応

Slide 33

Slide 33 text

本⽂の微調整を校正オプションで対応(Movable Typeの場合)

Slide 34

Slide 34 text

インポートに 失敗したときは

Slide 35

Slide 35 text

管理画⾯がCSV-IMPORTで埋め尽くされる🥺

Slide 36

Slide 36 text

SQLコマンドで削除する (エントリーIDが14以降を削除する場合) DELETE FROM `acms_entry` WHERE `entry_id` >= 14; DELETE FROM `acms_field` WHERE `field_eid` >= 14; DELETE FROM `acms_column` WHERE `column_eid` >= 14; DELETE FROM `acms_fulltext` WHERE `fulltext_eid` >= 14; UPDATE `acms_sequence` SET `sequence_entry_id` = 13; ⚠⾃⼰責任

Slide 37

Slide 37 text

WordPressで a-blog cmsの ように開発する おまけ

Slide 38

Slide 38 text

a-blog cmsのテンプレート継承機能は Laravelのbladeテンプレートに近い

Slide 39

Slide 39 text

a-blog cmsのテンプレート継承機能は LaravelのBladeテンプレートに近い

Slide 40

Slide 40 text

Bladeテンプレートをスタンドアローンで使⽤できる https://github.com/EFTEC/BladeOne

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

・@extends、@sectionの継承機能を使うことができる ・マスタッシュ構⽂でを書かなくても良い ・フィルタ(校正オプション)も使うことができる ・⾃動的にエスケープされるので⽐較的安全 WordPressへの抵抗感がなくなるためおすすめ☺

Slide 43

Slide 43 text

編集中であることを 表す表⽰は欲しい! https://usortblog.com/shounin-flow/ より

Slide 44

Slide 44 text

おしまい