質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

2回答

368閲覧

PHPとHTMLを使用したサイト制作で、ワードプレスのショートコードのようなものを使用する方法

rexpen

総合スコア7

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2022/03/01 05:24

前提・実現したいこと

ワードプレスを使用せずPHP(CakePHPを使用予定)とHTMLでサイト制作する際に、
ワードプレスの「ショートコード」のような機能を使用する方法はありますか。

タグをテンプレート化し、中身を自由に変更できるようにしたいです。

実現したいこと

入力する内容

[test]りんご[/test] [test]ばなな[/test] [test]いちご[/test]

出力結果

<div class="test">りんご</div> <div class="test">ばなな</div> <div class="test">いちご</div>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

CakePHPの事はあんまり知らないのですが、
CMSの自作の様な事をしたいという前提で回答しますと。

基本

PHP

1[test]りんご[/test] 2[test]ばなな[/test] 3[test]いちご[/test]

を入力フォームに入力させて(or HTMLとしてサーバに保存して)

PHP

1<div class="test">りんご</div> 2<div class="test">ばなな</div> 3<div class="test">いちご</div>

を出力したいのであれば、

PHP

1 2<?php 3 4//再現がめんどくさいので文字列を直接書いていますが、実際にはDBなりHTMLなりから取得して下さい 5$post = "[test]りんご[/test] 6[test]ばなな[/test] 7[test]いちご[/test]";/ 8 9 10$input_tags = ["[test]","[/test]"]; 11$output_tags = ["<div class='test'>",'</div>']; 12 13echo str_replace($input_tags,$output_tags,$post); 14

という感じにすれば↓の様な出力になります。

<div class='test'>りんご</div> <div class='test'>ばなな</div> <div class='test'>いちご</div>

実際に使うには

もちろん、上記のコードでは[test][/test]のみの決め打ちになっており、対応するタグを増やそうとした場合にはコードの追加が必要になります。
これだけだと使いにくいので、

PHP

1 2$input_tags = ["[test]","[/test]"]; 3$output_tags = ["<div class='test'>",'</div>']; 4

の組み合わせをDBに保存してそこから取得するなどするなどすれば、対応タグを増やすことが出来ます。

よくある機能

よくあるCMSの独自タグだと、これに加えてタグにパラメータを与えたり出来ます

  • [test id=1]リンゴ[/test]おいしくて甘いリンゴ:ふじ
  • [test id=2]リンゴ[/test]小ぶりで真っ赤なリンゴ:紅玉

みたいな感じす。

これを仕様とした場合は、単純なstr_replace()だけだと難しいので、preg_match()等の正規表現を使ってidの値を抜き出してDB処理をするなどの工夫が必要になってきます。

が、まずは単純な置き換えから作ってみるのが良いかと思いますよ。

投稿2022/03/01 08:52

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

フレームワークには大体テンプレートエンジンで画面表示を担当させているのでそれっぽいのはあるのですけど、独自のルールとなると自身で変換用のヘルパー作って当てることになると思います。

例にあげられているWordPressも裏では変換用ヘルパーが動作して出力用のhtmlに変換されてると思います。
つまり、テンプレートエンジンのようなものを自作するような難易度ということです。

ただ、コンテンツを作る仕組みが初期から全て提供されているWordPressと、そういう仕組を自前で作るフレームワークでは全く方向性が違う基盤となるので「同じような機能」を探るのはあまり意味がないと思います。

投稿2022/03/01 05:41

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問