リンクをカードにするプラグインを作ろう!(11)テキストリンク行を変換

テキストにリンクが設定されただけの行をブログカードにします。

前回まで

サイトアイコンを表示させました。

[link url=”https://popozure.info/20180826/13339″]

テキストリンク行を変換する

フィルターの設定

記事の内容を取得するときのフィルターを設定します。
[php title=”popo-blogcard.php” start-line=”12″ mark=”4″] function __construct() {
add_shortcode(‘blogcard’, array($this, ‘shortcode’ ) );
add_action(‘wp_enqueue_scripts’, array($this, ‘enqueue’ ) );
add_filter(‘the_content’, array($this, ‘filter_content’) );
register_activation_hook(__FILE__, array($this, ‘activate’) );
register_deactivation_hook(__FILE__, array($this, ‘deactivate’) );
}
[/php]

フィルターの関数を用意する

記事の内容を取得するときのフィルター関数を用意します。
[php title=”popo-blogcard.php” start-line=”97″ mark=”4-5″] function enqueue() {
wp_enqueue_style(‘popo-blogcard’, plugin_dir_url(__FILE__).’style.css’);
}
function filter_content($content) {
}
}
$popo_blogcard = new popo_blogcard;[/php]

正規表現でショートコードに置き換える

テキストにリンクが設定されただけの行を探してショートコードに置きます。
[php title=”popo-blogcard.php” start-line=”97″ mark=”5-6″] function enqueue() {
wp_enqueue_style(‘popo-blogcard’, plugin_dir_url(__FILE__).’style.css’);
}
function filter_content($content) {
$content = preg_replace( ‘/(^|
)()?(<\/p>)?$/im’, ‘

‘, $content);
return $content;
}
}
$popo_blogcard = new popo_blogcard;[/php]

表示してみる

記事中にテキストにリンクを設定した行を書きます。

記事を表示させるとブログカードになりました。

今回のコード

プラグイン本体

[php title=”popo-blogcard.php”]get_row($wpdb->prepare(“SELECT * FROM “.$wpdb->prefix.”popo_blogcard WHERE url=%s”, $url ) );
if ($data ) {
$site_name = $data->site_name;
$title = $data->title;
$excerpt = $data->excerpt;
} else {
$ch = curl_init($url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_TIMEOUT, 8 );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt($ch, CURLOPT_MAXREDIRS, 8 );
curl_setopt($ch, CURLOPT_AUTOREFERER, true );
curl_setopt($ch, CURLOPT_COOKIESESSION, true );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false );
$html = curl_exec($ch );
if (curl_errno($ch ) ) {
$site_name = ”;
$title = $url;
$excerpt = ”;
} else {
$html = mb_convert_encoding($html, ‘UTF-8’, ‘ASCII,JIS,UTF-8,EUC-JP,SJIS’ );
if (preg_match(‘/property=”og:title”\s*content=”([^”]*)/si’, $html, $m ) ) {
$title = esc_html($m[1]);
} else {
if (preg_match(‘/<\s*title\s*[^>]*>\s*([^<]*)\s*<\s*\/title\s*[^>]*>/si’, $html, $m ) ) {
$title = esc_html($m[1]);
}
}
if (preg_match(‘/property=”og:description”\s*content=”([^”]*)/si’, $html, $m ) ) {
$excerpt = esc_html($m[1]);
} else {
if (preg_match(‘/name=”description”\s*content=”([^”]*)/si’, $html, $m ) ) {
$excerpt = esc_html($m[1]);
}
}
if (preg_match(‘/property=”og:site_name”\s*content=”([^”]*)/si’, $html, $m ) ) {
$site_name = esc_html($m[1]);
} else {
$m = parse_url($url );
$site_name = $m[‘host’];
}
}
curl_close($ch );
$result = $wpdb->insert(
$wpdb->prefix.’popo_blogcard’,
array(
‘url’ => $url,
‘site_name’ => $site_name,
‘title’ => $title,
‘excerpt’ => $excerpt
)
);
}
$site_icon = ‘‘;
$thumbnail = ‘‘;
$html = ‘

‘;
return $html;
}
public function activate() {
global $wpdb;
$wpdb->hide_errors();
require_once (ABSPATH.’wp-admin/includes/upgrade.php’);
$sql = “CREATE TABLE “.$wpdb->prefix.”popo_blogcard (
url VARCHAR(2048) DEFAULT ”,
site_name VARCHAR(100) DEFAULT ”,
title VARCHAR(200) DEFAULT ”,
excerpt VARCHAR(500) DEFAULT ”,
) “.$wpdb->get_charset_collate().” ;”;
dbDelta($sql);
}
public function deactivate() {
global $wpdb;
$sql = “DROP TABLE “.$wpdb->prefix.”popo_blogcard”;
$wpdb->query($sql);
}
function enqueue() {
wp_enqueue_style(‘popo-blogcard’, plugin_dir_url(__FILE__).’style.css’);
}
function filter_content($content) {
$content = preg_replace( ‘/(^|
)()?
(<\/p>)?$/im’, ‘
‘, $content);
return $content;
}
}
$popo_blogcard = new popo_blogcard;[/php]

スタイルシート

[css title=”style.css”].popo_bc_wrap {
margin: 16px;
padding: 8px;
width: 96%;
border: 2px solid #8888ff;
background-color: #ffffff;
border-radius: 3px;
}
.popo_bc_link {
text-decoration: none;
}
.popo_bc_siteicon {
float: left;
}
.popo_bc_site_name {
display: block;
font-size: 12px;
}
.popo_bc_thumbnail {
float: left;
padding: 8px;
max-width: 94px;
}
.popo_bc_title {
display: block;
font-size: 18px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.popo_bc_url {
display: block;
font-size: 12px;
color: #00f;
text-decoration: underline;
}
.popo_bc_excerpt {
height: 32px;
font-size: 12px;
color: #444;
overflow: hidden;
text-overflow: ellipsis;
}[/css]

次回は・・・

今回でこの企画は終了です。

何か要望があれば追加したいと思います。

では、この辺で。(^-^)o

[amzn-link asin=”4774187062″][amzn-link asin=”B00M939Y0I”][amzn-link asin=”4798143774″][amzn-link asin=”B019GNUT0C”][amzn-link asin=”B01LATWL5G”]

ゲーミングマウス「G300s」買ってみた(子どもの。)

子どものために新たにマウスを買いました。

今までのマウス「M185」

今まで使っていたマウスはlogicool「M185」。

左クリック、右クリック、ホイール、ホイール押し込みだけのシンプルなマウスです。

Chromeでブラウジングするにもゲームするにも今ひとつ使いづらそうなのでゲーミングマウスを購入しました。

ゲーミングマウス「G300s」

logicoolのゲーミングマウス「G300s」にしてみました。

[link url=”https://gaming.logicool.co.jp/ja-jp/product/g300s-gaming-mouse”]

ビックカメラのポイントが余っていたので、ビックカメラ.comで購入。

税込みで1,846円でした。全部ポイントで清算です。

箱を開けてみると真っ黒いマウスが。

写真だとブルーのラインが入っていた気がします。

パソコンに繋いだところ、LEDでブルーのラインが表示されました。

ボタンを割り当てるソフトウェア

マウスには「G4」「G5」「G6」「G7」「G8」「G9」のボタンが付いていて、「Logicool®ゲーミングソフトウェア」をダウンロードしてインストールすることで、それぞれ好きな動作を割り当てることができます。

[link url=”https://support.logicool.co.jp/ja_jp/product/g300s-gaming-mouse/downloads”]

割り当てたいボタンを選んで、マウスの挙動かキーボードの挙動を選びます。

モード切替で3つのパターンまで覚えさせることが出来ます。

モードを切り替えるとLEDの色が変わります。

Chromeを使うときは、「Ctrl+Tab(右のタブへ)」、「Ctrl+Shift+Tab(左のタブへ)」、「Ctrl+F4(タブを閉じる)」辺りを組み込んでおくと便利そうです。

Excelを使うときは、「Ctrl+X(切り取り)」「Ctrl+C(コピー)」「Ctrl+V(貼り付け)」「Ctrl+Z(ひとつ戻す)」辺りが良さそうです。

ホイール押し込みにも機能が当てられるのが地味に便利です。

あとはチルトホイールがあれば良かったなと思います。

そして、子どもへ・・・

次男坊のパソコン環境が一気に良くなっていきます。

次男
これかっこええ!Σ(゚ロ゚)o゙
ぽぽろん
そうだろうそうだろう
次男
ふええ、色々割り当てられる!Σ(゚ロ゚)o゙
ぽぽろん
そうだろうそうだろう
次男
3つも覚えさせられるんだ!?Σ(゚ロ゚)o゙
ぽぽろん
ふむふむ

クリエイティブなことにも手を出してくれると良いのですが・・・!

では、この辺で。(^-^)o

[amzn-link asin=”B00TP2AD2E”][amzn-link asin=”B00MCIIX1G”][amzn-link asin=”B01LYTNW7V”][amzn-link asin=”B00VFSJ3JU”][amzn-link asin=”B018XI27QU”]

8ポートHUB「GS308-100JPS」買ってみた

ネットワークが復帰しました。

HUBを注文してみた

雷の影響だかで今まで使っていた8ポートHUBが故障してしまいました。

メインのパソコンでインターネットが使えないのは不便なのでさっそく新しいHUBを注文しました。

[link url=”https://popozure.info/20180828/13500″]

昨日注文して、今日、仕事から帰ったら届いていました。

さすがAmazon、早いです。

念のため今まで使っていたHUBをコンセントに挿し直してみたけど、やはり復帰せず。

接続してみた

さっそく設置してLANケーブルを挿し直しました。

問題無く接続されました。

メインのパソコンでもインターネットが繋がって一安心。

接続している機器

ここのHUBに接続している機器です。

機器名 備考
メインのパソコン メインのパソコンです
WHS サポート切れのWHSです
無線LAN ルーター ELECOM WRC-1750GHBK2-I
Nintendo Switch ぼく専用
LIVA mini
子どものパソコン この前買ったやつです

随時で預かった機器等を繋げることがあるので4ポートでは足りません。

では、この辺で。(^-^)o

[amzn-link asin=”B01DJ30T4Q”][amzn-link asin=”B00A121WN6″][amzn-link asin=”B00R1BUFVK”][amzn-link asin=”B00I5871QU”][amzn-link asin=”B00TZ8CUCO”]

8ポートHUBが故障してしまった・・・

我が家の幹線が遮断されました。

昨日のカミナリ!?

仕事から帰ってきたらパソコンがインターネットにつながりません。

よく見るとHUB(Princeton PNP-SW08GE)のランプが付いていません・・・!

昨日、凄い雷と瞬電が2回ほどあった影響かも知れません。

でも昨日は大丈夫だったのに・・・。

今まで使っていたHUBのスペック

放熱的に安心のメタル筐体。

今は生産完了品です。

型番 PNP-SW08GE
メーカー Princeton
筐体 メタルケース
ポート数 8
対応 1000BASE-T/100BASE-TX/10BASE-T
スイッチングデータ転送方式 ストア&フォアード
ネゴシエーション オート
MDI/MDI-X オート
ファン ファンレス
ジャンボフレーム 9K
MACテーブル 4096
バッファ ?
電源アダプタ 5 V/2.4 A
消費電力 11W
寸法(幅×奥行×高) 161×120×38mm
重量 810g

新しいHUBを注文!

メインのパソコンでインターネットが使えないと不便なのでさっそく新しいHUBを注文しました。

「NETGEAR 8-Port Gigabit Ethernet Switch(GS308-100JPS)」です。

[link url=”https://jp.netgear.com/home/products/networking/switches/soho-ethernet-switches/GS308.aspx#tab”]

Amazonで2,780円でした。

型番 GS308-100JPS
メーカー NETGEAR
筐体 メタルケース
ポート数 8
対応 1000BASE-T/100BASE-TX/10BASE-T
スイッチングデータ転送方式 ストア&フォアード
ネゴシエーション オート
MDI/MDI-X オート
ファン ファンレス
ジャンボフレーム 9,216バイト
MACテーブルサイズ 8000
バッファ 128KB
電源アダプタ 12 V/0.5 A
消費電力 3.52 W
寸法(幅×奥行×高) 158 x 101 x 29 mm
重量 380 g

やっぱりメタル筐体が放熱的にも安心して使えます。

明日には着くらしいです!

[link url=”https://popozure.info/20180829/13505″]

では、この辺で。(^-^)o

[amzn-link asin=”B01DJ30T4Q”][amzn-link asin=”B00A121WN6″][amzn-link asin=”B00R1BUFVK”][amzn-link asin=”B00I5871QU”][amzn-link asin=”B00TZ8CUCO”]

リンクをカードにするプラグインを作ろう!(10)サイトアイコンの追加

サイトアイコン取得APIを利用してサイトアイコンを表示します。

前回まで

サムネイルを表示させました。

[link url=”https://popozure.info/20180825/13334″]

サイトアイコンを取得する

Googleのサイトアイコン取得APIを利用する

Googleのサイトアイコン取得APIを利用します。

「domain」パラメータにドメインもしくはURLを指定します。

https://www.google.com/s2/favicons?domain=(DOMAIN)

[php title=”popo-blogcard.php” start-line=”70″ mark=”5″] ‘excerpt’ => $excerpt
)
);
}
$site_icon = ‘‘;
$thumbnail = ‘‘;
$html = ‘

‘;
return $html;
}[/php]

HTMLにサイトアイコンを組み込む

サイト名称の前に組み込みます。
[php title=”popo-blogcard.php” start-line=”70″ mark=”7″] ‘excerpt’ => $excerpt
)
);
}
$site_icon = ‘‘;
$thumbnail = ‘‘;
$html = ‘

‘;
return $html;
}[/php]

スタイルシートを追加する

左寄せで表示されるようにスタイルシートを追加します。
[css title=”style.css” start-line=”9″ mark=”4-6″].popo_bc_link {
text-decoration: none;
}
.popo_bc_siteicon {
float: left;
}
.popo_bc_site_name {
display: block;
font-size: 12px;
}[/css]

表示してみる

サイト名称の左側にサイトアイコンが表示されました。

今回のコード

今回はここまでです。

プラグイン本体

[php title=”popo-blogcard.php”]get_row($wpdb->prepare(“SELECT * FROM “.$wpdb->prefix.”popo_blogcard WHERE url=%s”, $url ) );
if ($data ) {
$site_name = $data->site_name;
$title = $data->title;
$excerpt = $data->excerpt;
} else {
$ch = curl_init($url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_TIMEOUT, 8 );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt($ch, CURLOPT_MAXREDIRS, 8 );
curl_setopt($ch, CURLOPT_AUTOREFERER, true );
curl_setopt($ch, CURLOPT_COOKIESESSION, true );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false );
$html = curl_exec($ch );
if (curl_errno($ch ) ) {
$site_name = ”;
$title = $url;
$excerpt = ”;
} else {
$html = mb_convert_encoding($html, ‘UTF-8’, ‘ASCII,JIS,UTF-8,EUC-JP,SJIS’ );
if (preg_match(‘/property=”og:title”\s*content=”([^”]*)/si’, $html, $m ) ) {
$title = esc_html($m[1]);
} else {
if (preg_match(‘/<\s*title\s*[^>]*>\s*([^<]*)\s*<\s*\/title\s*[^>]*>/si’, $html, $m ) ) {
$title = esc_html($m[1]);
}
}
if (preg_match(‘/property=”og:description”\s*content=”([^”]*)/si’, $html, $m ) ) {
$excerpt = esc_html($m[1]);
} else {
if (preg_match(‘/name=”description”\s*content=”([^”]*)/si’, $html, $m ) ) {
$excerpt = esc_html($m[1]);
}
}
if (preg_match(‘/property=”og:site_name”\s*content=”([^”]*)/si’, $html, $m ) ) {
$site_name = esc_html($m[1]);
} else {
$m = parse_url($url );
$site_name = $m[‘host’];
}
}
curl_close($ch );
$result = $wpdb->insert(
$wpdb->prefix.’popo_blogcard’,
array(
‘url’ => $url,
‘site_name’ => $site_name,
‘title’ => $title,
‘excerpt’ => $excerpt
)
);
}
$site_icon = ‘‘;
$thumbnail = ‘‘;
$html = ‘

‘;
return $html;
}
public function activate() {
global $wpdb;
$wpdb->hide_errors();
require_once (ABSPATH.’wp-admin/includes/upgrade.php’);
$sql = “CREATE TABLE “.$wpdb->prefix.”popo_blogcard (
url VARCHAR(2048) DEFAULT ”,
site_name VARCHAR(100) DEFAULT ”,
title VARCHAR(200) DEFAULT ”,
excerpt VARCHAR(500) DEFAULT ”,
) “.$wpdb->get_charset_collate().” ;”;
dbDelta($sql);
}
public function deactivate() {
global $wpdb;
$sql = “DROP TABLE “.$wpdb->prefix.”popo_blogcard”;
$wpdb->query($sql);
}
function enqueue() {
wp_enqueue_style(‘popo-blogcard’, plugin_dir_url(__FILE__).’style.css’);
}
}
$popo_blogcard = new popo_blogcard;[/php]

スタイルシート

[css title=”style.css”].popo_bc_wrap {
margin: 16px;
padding: 8px;
width: 96%;
border: 2px solid #8888ff;
background-color: #ffffff;
border-radius: 3px;
}
.popo_bc_link {
text-decoration: none;
}
.popo_bc_siteicon {
float: left;
}
.popo_bc_site_name {
display: block;
font-size: 12px;
}
.popo_bc_thumbnail {
float: left;
padding: 8px;
max-width: 94px;
}
.popo_bc_title {
display: block;
font-size: 18px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.popo_bc_url {
display: block;
font-size: 12px;
color: #00f;
text-decoration: underline;
}
.popo_bc_excerpt {
height: 32px;
font-size: 12px;
color: #444;
overflow: hidden;
text-overflow: ellipsis;
}[/css]

次回は・・・

次回はテキストリンクだけの行をブログカードに変換したいと思います。

[link url=”https://popozure.info/20180831/13519″]

では、この辺で。(^-^)o

[amzn-link asin=”4774187062″][amzn-link asin=”B00M939Y0I”][amzn-link asin=”4798143774″][amzn-link asin=”B019GNUT0C”][amzn-link asin=”B01LATWL5G”]

「Compaq 8300 Elite SFF」をSSDに換装してみた

子ども用に中古で買って来た「Compaq 8300 Elite SFF」をSSDに換装したり設定を行ったりしました。

秋葉原で中古パソコンを買ってきた

次男坊に使わせているパソコンが少々パワー不足のため、ゲームをするにしても調べものをするにしてもちょっと遅かったりして、何とかしてあげたくて中古パソコンを買ってきました。

[link url=”https://popozure.info/20180824/13452″]

ドラクエXベンチ

まずは素の状態でドラクエXベンチをまわしていきます。

グラフィック設定「標準品質」、解像度「1280×720」、表示方法「ウィンドウ」でスコア「2147(やや重い)」でした。

i5の内蔵グラフィックスだとだいたいこんな感じですね。

D-Sub25で接続したので気づいたのですが、本体にスピーカーが内蔵されていて、本体からBGM等が鳴ります。

ビジネス向けだと内蔵スピーカーとか多いんでしょうか?

電源を切ってSSDへ換装

電源を切ってHDDをSSDへ換装します。

Sandiskの「SSD PLUS 240GB SDSSDA-240G-J26」が余っていたのでこれを使いました。

[link url=”https://www.sandisk.co.jp/home/ssd/ssd-plus-j26″]

  1. 電源ケーブルを抜く。
  2. サイドパネルを開く。
  3. 電源ボックス部を引き上げる。
  4. DVDドライブ部を引き上げる。
  5. HDDのところにある緑のボタンを押しながらHDDを抜き出す。
  6. SATAケーブル、電源ケーブルを抜いてSSDを繋ぐ。
  7. 電源ボックス部を閉じる。
  8. DVDドライブ部を閉じる。(ちょっと硬いです)

グラフィックカード増設

グラフィックカードも増設してしまいましょう。

玄人志向の「GF-GT710-E1GB/LP」が余っていたのでこれを使いました。

※「hp Compaq 8300 Elite SFF」と「GF-GT710-E1GB/LP」ではHDMIのコネクタ部が金具に干渉してHDMIケーブルが刺さりませんでした。D-SubもしくはDVIで接続することとなります。→HDMIケーブルを交換したらちゃんと反応しましたHDMIケーブルの不具合でした

  1. ブラケットのカバー部を開く。
  2. 不要なブラケットを外す。
  3. グラフィックカードを挿す。
  4. ブラケットのカバー部を閉じる。
  5. サイドパネルを閉じる。
  6. 電源ケーブルを挿す。

ついでにメモリ増設

弟がパソコンを買い替えたときに今まで使っていた「FRONTIER FRM909/23A」に刺さっていたメモリを貰っていたので、これを増設します。

[link url=”https://popozure.info/20180210/12415″]

手元には2GBが4枚あります。

そして4GBのメモリが1枚刺さっていて3スロット空いていたので3枚刺します。

合計10GB!

ぽぽろん
ぼくのパソコンよりメモリ多いんだけど!?
次男
返すよ!?Σ(゚ロ゚)o゙
ぽぽろん
まあ8GBあって問題ないからいらん。

機器構成

機器構成はこんな感じです。

パソコン本体 hp Compaq 8300 Elite SFF
[amzn-img asin=”B01BFG8EXW”]
24,800円
2018/8/24購入
SSD Sandisk SSD PLUS 240GB
SDSSDA-240G-J26
[amzn-img asin=”B01FCTIVEA”]
9,526円
2018/2/9購入
グラフィックカード 玄人志向
GF-GT710-E1GB/LP
[amzn-img asin=”B01B2P8A3K”]
3,182円
2017/7/7購入
メモリ elixir M2Y2G64CB8HC5N-CG
[amzn-img asin=”B075XL3X65″]
-円
ディスプレイ LG FLATRON D237IPS-PN
[amzn-img asin=”B005X5MEDS”]
13,800円
2012/5/31購入
キーボード BUFFALO YDKBU02BK
[amzn-img asin=”B009NFPAF8″]
?円
?/?/?購入
マウス Logicool M185
[amzn-img asin=”B00WTXBYA6″]
?円
?/?/?購入
合計 51,308円

SSDとグラフィックカードは使うと思って買って、使わないまま温めていただけのものなのでむしろ消化できて良かったです。

Windows10のインストールメディアを作成

他の通常に使えるパソコン側で作業をします。

Microsoftのサイト、「Windows10のダウンロード」のページから「ツールを今すぐダウンロード」をクリックしてツールをダウンロードします。

[link url=”https://www.microsoft.com/ja-jp/software-download/windows10″]

ダウンロードしたら実行して、適当なUSBメモリをインストールメディアにします。

ダウンロードからメディアの作成まで15~20分くらいかかります。

インストールメディアの作成が終わったら取り外しします。

Windowsのインストール

Windows10のインストールをします。

  1. インストールメディアにしたUSBメモリを挿して電源を入れます。
  2. まず最初に言語の設定を選んで「今すぐインストール(I)」を選びます。
  3. プロダクト キーを聞かれるので、Windows7Professionalのときのプロダクト キーを入力します。(本体上部に貼ってあります。)
  4. ライセンス条項に同意します。
  5. インストール方法は「カスタム」を選びます。
  6. 「ドライブ 0 の割り当てられていない領域」を選びます。
  7. Windowsファイルのコピー~インストールが始まるのでしばらく待ちます。
  8. 10分ほどで再起動します。
  9. 数分後にまた再起動します。

Windowsの初期設定

  1. 住まいの地域で「日本」を選びます。
  2. キーボードレイアウトは「Microsoft IME」を選びます。
  3. 「2つ目のキーボード レイアウトを追加しますか?」と聞かれるので通常はスキップします。
  4. 「個人用」か「組織用」か聞かれるので「個人用に設定」を選びます。
  5. 「Microsoft アカウントでサインイン」と出るので、持っているMicrosoft アカウントでサインインします。
  6. 「PINを作成します」と出るので、数字で簡単にログインしたい場合、設定します。
  7. 「電話とPCをリンクする」と出るので、通常は「後で処理する」を選びます。
  8. 「OneDriveでファイルを保護」と出るので、OneDriveを使いたい人は「次へ」、そうでも無い人は「このPCにのみファイルを保存する」を選びます。
  9. 「Cortanaをパーソナル アシスタントとして指定しますか?」と出るので、好きな方を選びます。
  10. 「デバイスのプライバシー設定の選択」が出るので、Microsoftに提供したくない情報をオフにして「同意」を押します。
  11. 「こんにちは」→「現在準備中です」→「これには数分かかることがあります」と表示された数分後、デスクトップが表示されます。

ドラクエXベンチ

グラフィックカードを増設した状態でのスコアを測ります。

グラフィック設定「標準品質」、解像度「1280×720」、表示方法「ウィンドウ」でスコア「7101(とても快適)」でした。

このくらいあれば「メイプルストーリー」や「ラグナロクオンライン」くらいのゲームなら快適に遊べるんじゃないでしょうか。

他のパソコンでのベンチマーク結果はこちら。

[link url=”https://popozure.info/20170713/11206″]

「Google Chrome」をインストール

インターネット ブラウザの「Chrome」をインストールします。

[link url=”https://www.google.co.jp/chrome/”]

Chromeを通常のブラウザに設定する

「設定」→「アプリ」→「既定のアプリ」を開いて、「Web ブラウザー」をクリックして「Google Chrome」を選びます。

「カスペルスキー インターネット セキュリティ」をインストール

ちょっとインストールするタイミングが遅い気がしますが、Windows10は標準機能でウイルスなどに強いと言われているので大丈夫でしょう。

最新版をダウンロードしてインストールします。

[link url=”https://home.kaspersky.co.jp/store/kasperjp/ja_JP/html/pbPage.support_versionup/ThemeID.37143000/lnID.2″]

カスペルスキー インターネット セキュリティーはファミリー版があるのでこのライセンスでインストールしていきます。

「ノートン ファミリー」をインストール

フィルタリングソフトです。

[link url=”https://family.norton.com/web/”]

16歳なのでそろそろ微妙なところではありますが、一応、就職して自分の責任で使うまではフィルタリングソフトが必要かなと思っています。

「Microsoft Office Personal 2013」をインストール

次男坊用のオフィスもインストールしなおします。

ぼくのは「Microsoft Office Personal 2010」なのに子どもの方が新しいバージョンを使っています。ずるい。

[link url=”https://products.office.com/ja-jp/home”]

そして、子どもへ・・・

CPUがCore i5で、グラフィックカードも積んでいるので、ある程度のことは出来るパソコンとなりました。

次男
起動早い!Σ(゚ロ゚)o゙
ぽぽろん
そうだろうそうだろう
次男
ゲームの立ち上げも早い!Σ(゚ロ゚)o゙
ぽぽろん
そうだろうそうだろう
次男
ローディングも早い!Σ(゚ロ゚)o゙
ぽぽろん
そうだろうそうだろう

ゲームしてもいいけど、それ以外のパソコンを使うこと色々と興味を持ってくれるといいな!

では、この辺で。(^-^)o

[amzn-link asin=”B07CRZJ4XC”][amzn-link asin=”B072R78B6Q”][amzn-link asin=”B07969N2W9″][amzn-link asin=”B075QPY8K9″][amzn-link asin=”B00B8OB82Q”]

→「GeForce GTX1650」に換装しました。

[link url=”https://popozure.info/20190820/14579″]

リンクをカードにするプラグインを作ろう!(9)サムネイルの追加

画像生成APIを利用してサムネイルを表示します。

前回まで

DBにタイトルや概要文をキャッシュして読み書きしました。

[link url=”https://popozure.info/20180824/13323″]

サムネイルを取得する

WordPress.comの画像生成APIを利用する

WordPress.comの画像生成APIを利用します。

URLの一部にサムネイルを作りたいURLを組み込み、「w」パラメータで横幅を指定します。

https://s.wordpress.com/mshots/v1/(URL)?w=94

[php title=”popo-blogcard.php” start-line=”70″ mark=”5″] ‘excerpt’ => $excerpt
)
);
}
$thumbnail = ‘‘;
$html = ‘

‘;
return $html;
}[/php]

HTMLにサムネイルを組み込む

サイト名称の次、タイトルの前に組み込みます。
[php title=”popo-blogcard.php” start-line=”70″ mark=”6″] ‘excerpt’ => $excerpt
)
);
}
$thumbnail = ‘‘;
$html = ‘

‘;
return $html;
}[/php]

スタイルシートを追加する

左寄せで表示されるようにスタイルシートを追加します。
[css title=”style.css” start-line=”12″ mark=”5-9″].popo_bc_site_name {
display: block;
font-size: 12px;
}
.popo_bc_thumbnail {
float: left;
padding: 8px;
max-width: 94px;
}
.popo_bc_title {
display: block;
font-size: 18px;
overflow: hidden;[/css]

表示してみる

ブログカードの左側にサムネイルが表示されました。

今回のコード

今回はここまでです。

プラグイン本体

[php title=”popo-blogcard.php”]get_row($wpdb->prepare(“SELECT * FROM “.$wpdb->prefix.”popo_blogcard WHERE url=%s”, $url ) );
if ($data ) {
$site_name = $data->site_name;
$title = $data->title;
$excerpt = $data->excerpt;
} else {
$ch = curl_init($url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_TIMEOUT, 8 );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt($ch, CURLOPT_MAXREDIRS, 8 );
curl_setopt($ch, CURLOPT_AUTOREFERER, true );
curl_setopt($ch, CURLOPT_COOKIESESSION, true );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false );
$html = curl_exec($ch );
if (curl_errno($ch ) ) {
$site_name = ”;
$title = $url;
$excerpt = ”;
} else {
$html = mb_convert_encoding($html, ‘UTF-8’, ‘ASCII,JIS,UTF-8,EUC-JP,SJIS’ );
if (preg_match(‘/property=”og:title”\s*content=”([^”]*)/si’, $html, $m ) ) {
$title = esc_html($m[1]);
} else {
if (preg_match(‘/<\s*title\s*[^>]*>\s*([^<]*)\s*<\s*\/title\s*[^>]*>/si’, $html, $m ) ) {
$title = esc_html($m[1]);
}
}
if (preg_match(‘/property=”og:description”\s*content=”([^”]*)/si’, $html, $m ) ) {
$excerpt = esc_html($m[1]);
} else {
if (preg_match(‘/name=”description”\s*content=”([^”]*)/si’, $html, $m ) ) {
$excerpt = esc_html($m[1]);
}
}
if (preg_match(‘/property=”og:site_name”\s*content=”([^”]*)/si’, $html, $m ) ) {
$site_name = esc_html($m[1]);
} else {
$m = parse_url($url );
$site_name = $m[‘host’];
}
}
curl_close($ch );
$result = $wpdb->insert(
$wpdb->prefix.’popo_blogcard’,
array(
‘url’ => $url,
‘site_name’ => $site_name,
‘title’ => $title,
‘excerpt’ => $excerpt
)
);
}
$thumbnail = ‘‘;
$html = ‘

‘;
return $html;
}
public function activate() {
global $wpdb;
$wpdb->hide_errors();
require_once (ABSPATH.’wp-admin/includes/upgrade.php’);
$sql = “CREATE TABLE “.$wpdb->prefix.”popo_blogcard (
url VARCHAR(2048) DEFAULT ”,
site_name VARCHAR(100) DEFAULT ”,
title VARCHAR(200) DEFAULT ”,
excerpt VARCHAR(500) DEFAULT ”,
) “.$wpdb->get_charset_collate().” ;”;
dbDelta($sql);
}
public function deactivate() {
global $wpdb;
$sql = “DROP TABLE “.$wpdb->prefix.”popo_blogcard”;
$wpdb->query($sql);
}
function enqueue() {
wp_enqueue_style(‘popo-blogcard’, plugin_dir_url(__FILE__).’style.css’);
}
}
$popo_blogcard = new popo_blogcard;[/php]

スタイルシート

[css title=”style.css”].popo_bc_wrap {
margin: 16px;
padding: 8px;
width: 96%;
border: 2px solid #8888ff;
background-color: #ffffff;
border-radius: 3px;
}
.popo_bc_link {
text-decoration: none;
}
.popo_bc_site_name {
display: block;
font-size: 12px;
}
.popo_bc_thumbnail {
float: left;
padding: 8px;
max-width: 94px;
}
.popo_bc_title {
display: block;
font-size: 18px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.popo_bc_url {
display: block;
font-size: 12px;
color: #00f;
text-decoration: underline;
}
.popo_bc_excerpt {
height: 32px;
font-size: 12px;
color: #444;
overflow: hidden;
text-overflow: ellipsis;
}[/css]

次回は・・・

最後にサイトアイコン(ファビコン)を追加しようと思います。

[link url=”https://popozure.info/20180826/13339″]

では、この辺で。(^-^)o

[amzn-link asin=”4774187062″][amzn-link asin=”B00M939Y0I”][amzn-link asin=”4798143774″][amzn-link asin=”B019GNUT0C”][amzn-link asin=”B01LATWL5G”]

秋葉原で中古パソコン買って来た(次男坊の。)

子ども用に中古パソコンを買ってきました。

秋葉原へ行ってきた!

次男坊に使わせているパソコンは少々パワー不足。

調べものをするにしても、ゲームをするにしても、ちょっと動作が遅かったりします。

もっとパソコンを活用して貰いたくてもう少し良い性能のパソコンを中古で買おうと決めました。

とりあえず行ったのが「PCコンフル 秋葉原店」。

[link url=”http://www.tce.co.jp/pcs/pc_comfull.html”]

ノートパソコンなら例えばディスプレイの方はゲームをしながらノートパソコンで調べものをしたり、いざとなればHDMIやD-Subでディスプレイに繋げて広い画面で使えると思いました。

性能としてはCPUが「Intel Core i5」以上だといいな、と思いました。

けっきょくデスクトップに!

ノートパソコンを中心にしばらく悩んでいたのですが、

  • 同じ値段で見ると、デスクトップの方がCPU性能が高い
  • デスクトップならグラフィックカードも積める

といった点で、デスクトップパソコンに決めてしまいました。

ヒューレットパッカードのビジネス向けパソコン「hp Compaq 8300 Elite SFF」です。(中古、本体のみ)

型番 Compaq 8300 Elite SFF
メーカー hp
CPU Intel Core i5-3470 3.2GHz
OS Windows 7 Professional 64bit
チップセット Intel Q77 Express
メモリ PC3-12800(1600MHz)
4GB (2GBx2)
ハードディスク Serial ATA/600
500GB HDD (7200RPM)
グラフィックス 内蔵(Intel HD Graphics)
LAN Intel 82579LM ギガビット
USB USB3.0x4、USB2.0x6
アプリケーション なし
サイズ 100x378x338mm
重量 7.6kg
外観 [amzn-img asin=”B07CN3FWTV”]

価格は税込みで24,800円。

OSはWindows 10 Pro へアップグレード済み。

メモリを8GBにしようか悩みましたが今回はやめました。

今後の予定

とりあえず、

  • 動作確認。(保証30日)
  • グラフィックボード増設
  • SSD換装
  • Windows10Proのクリーンインストール

こんな感じでやっていこうと思います。

今日は持って帰ってきただけで疲れました。

次回はセットアップします。

[link url=”https://popozure.info/20180825/13467″]

では、この辺で。(^-^)o

[amzn-link asin=”B07F7V49WV”][amzn-link asin=”B072HH2QRC”][amzn-link asin=”B07F7V49WV”][amzn-link asin=”B076Y37MWM”][amzn-link asin=”B07BQV41V5″]

リンクをカードにするプラグインを作ろう!(8)DBテーブルにキャッシュする

DBにテーブルを作ってタイトルと概要文をキャッシュします。

前回まで

スタイルシートを付けてブログカードっぽくしました。

[link url=”https://popozure.info/20180819/13307″]

DBの作成とアクセス

テーブルの項目を考える

DBにテーブルを作成します。

記録する項目としては「URL」、「サイト名称」、「タイトル」、「概要文」です。

Pz-LinkCardではこの他に「登録日」や「ソーシャルカウント」などがあります。

項目名称 項目名 文字数
URL URL VARCHAR(2048)
サイト名称 site_name VARCHAR(100)
タイトル title VARCHAR(200)
概要文 excerpt VARCHAR(500)

有効化したときに呼ぶ関数

プラグインを有効化したときにDBのテーブルを作成します。

まずは有効化(activate)したときに呼ばれる関数を作成します。
[php title=”popo-blogcard.php” start-line=”12″ mark=”4″] function __construct() {
add_shortcode(‘blogcard’, array($this, ‘shortcode’ ) );
add_action(‘wp_enqueue_scripts’, array($this, ‘enqueue’ ) );
register_activation_hook(__FILE__, array($this, ‘activate’) );
}[/php]
[php title=”popo-blogcard.php” start-line=”56″ mark=”4-5″] $html = ‘

‘;
return $html;
}
public function activate() {
}
function enqueue() {
wp_enqueue_style(‘popo-blogcard’, plugin_dir_url(__FILE__).’style.css’);
}[/php]

DBのテーブルを作成する

dbDelta()という関数を使ってDBのテーブルを定義します。
[php title=”popo-blogcard.php” start-line=”59″ mark=”2-11″] public function activate() {
global $wpdb;
$wpdb->hide_errors();
require_once (ABSPATH.’wp-admin/includes/upgrade.php’);
$sql = “CREATE TABLE “.$wpdb->prefix.”popo_blogcard (
url VARCHAR(2048) DEFAULT ”,
site_name VARCHAR(100) DEFAULT ”,
title VARCHAR(200) DEFAULT ”,
excerpt VARCHAR(500) DEFAULT ”,
) “.$wpdb->get_charset_collate().” ;”;
dbDelta($sql);
}[/php]

無効化したときに呼ぶ関数

プラグインを停止したときにDBを削除しようと思います。

停止(deactivate)したときに呼ばれる関数を作成します。
[php title=”popo-blogcard.php” start-line=”12″ mark=”5″] function __construct() {
add_shortcode(‘blogcard’, array($this, ‘shortcode’ ) );
add_action(‘wp_enqueue_scripts’, array($this, ‘enqueue’ ) );
register_activation_hook(__FILE__, array($this, ‘activate’) );
register_deactivation_hook(__FILE__, array($this, ‘deactivate’) );
}[/php]
[php title=”popo-blogcard.php” start-line=”69″ mark=”4-5″] ) “.$wpdb->get_charset_collate().” ;”;
dbDelta($sql);
}
public function deactivate() {
}
function enqueue() {
wp_enqueue_style(‘popo-blogcard’, plugin_dir_url(__FILE__).’style.css’);
}[/php]

DBのテーブルを削除する

DBのテーブルを削除する記述をします。
[php title=”popo-blogcard.php” start-line=”72″ mark=”2-4″] public function deactivate() {
global $wpdb;
$sql = “DROP TABLE “.$wpdb->prefix.”popo_blogcard”;
$wpdb->query($sql);
}[/php]

DBのテーブルに情報を書きだす

cURLで取得した「URL」、「サイト名称」、「タイトル」、「概要文」をDBのテーブルに書き出します。
[php title=”popo-blogcard.php” start-line=”53″ mark=”5-13″] $site_name = $m[‘host’];
}
}
curl_close($ch );
$result = $wpdb->insert(
$wpdb->prefix.’popo_blogcard’,
array(
‘url’ => $url,
‘site_name’ => $site_name,
‘title’ => $title,
‘excerpt’ => $excerpt
)
);
$html = ‘

‘;
return $html;
}[/php]

DBのテーブルから情報を読みだす

DBにキャッシュがあったらcURLでアクセスしないでDBから読み出します。

DBにキャッシュが無い場合の処理を字下げします。
[php title=”popo-blogcard.php” start-line=”19″ mark=”2-8,55″] $url = $opt[‘url’];
global $wpdb;
$data = $wpdb->get_row($wpdb->prepare(“SELECT * FROM “.$wpdb->prefix.”popo_blogcard WHERE url=%s”, $url ) );
if ($data ) {
$site_name = $data->site_name;
$title = $data->title;
$excerpt = $data->excerpt;
} else {
$ch = curl_init($url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_TIMEOUT, 8 );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt($ch, CURLOPT_MAXREDIRS, 8 );
curl_setopt($ch, CURLOPT_AUTOREFERER, true );
curl_setopt($ch, CURLOPT_COOKIESESSION, true );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false );
$html = curl_exec($ch );
if (curl_errno($ch ) ) {
$site_name = ”;
$title = $url;
$excerpt = ”;
} else {
$html = mb_convert_encoding($html, ‘UTF-8’, ‘ASCII,JIS,UTF-8,EUC-JP,SJIS’ );
if (preg_match(‘/property=”og:title”\s*content=”([^”]*)/si’, $html, $m ) ) {
$title = esc_html($m[1]);
} else {
if (preg_match(‘/<\s*title\s*[^>]*>\s*([^<]*)\s*<\s*\/title\s*[^>]*>/si’, $html, $m ) ) {
$title = esc_html($m[1]);
}
}
if (preg_match(‘/property=”og:description”\s*content=”([^”]*)/si’, $html, $m ) ) {
$excerpt = esc_html($m[1]);
} else {
if (preg_match(‘/name=”description”\s*content=”([^”]*)/si’, $html, $m ) ) {
$excerpt = esc_html($m[1]);
}
}
if (preg_match(‘/property=”og:site_name”\s*content=”([^”]*)/si’, $html, $m ) ) {
$site_name = esc_html($m[1]);
} else {
$m = parse_url($url );
$site_name = $m[‘host’];
}
}
curl_close($ch );
$result = $wpdb->insert(
$wpdb->prefix.’popo_blogcard’,
array(
‘url’ => $url,
‘site_name’ => $site_name,
‘title’ => $title,
‘excerpt’ => $excerpt
)
);
}[/php]

プラグインを有効化する

プラグインを有効化したときにDBのテーブルを作成するので有効化します。

すでに有効化している場合、いったん停止してから有効化をしてください。

見た目には分かりませんがキャッシュから読み出されるようになりました。

今回のコード

今回はここまでです。

プラグイン本体

[php title=”popo-blogcard.php”]get_row($wpdb->prepare(“SELECT * FROM “.$wpdb->prefix.”popo_blogcard WHERE url=%s”, $url ) );
if ($data ) {
$site_name = $data->site_name;
$title = $data->title;
$excerpt = $data->excerpt;
} else {
$ch = curl_init($url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_TIMEOUT, 8 );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt($ch, CURLOPT_MAXREDIRS, 8 );
curl_setopt($ch, CURLOPT_AUTOREFERER, true );
curl_setopt($ch, CURLOPT_COOKIESESSION, true );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false );
$html = curl_exec($ch );
if (curl_errno($ch ) ) {
$site_name = ”;
$title = $url;
$excerpt = ”;
} else {
$html = mb_convert_encoding($html, ‘UTF-8’, ‘ASCII,JIS,UTF-8,EUC-JP,SJIS’ );
if (preg_match(‘/property=”og:title”\s*content=”([^”]*)/si’, $html, $m ) ) {
$title = esc_html($m[1]);
} else {
if (preg_match(‘/<\s*title\s*[^>]*>\s*([^<]*)\s*<\s*\/title\s*[^>]*>/si’, $html, $m ) ) {
$title = esc_html($m[1]);
}
}
if (preg_match(‘/property=”og:description”\s*content=”([^”]*)/si’, $html, $m ) ) {
$excerpt = esc_html($m[1]);
} else {
if (preg_match(‘/name=”description”\s*content=”([^”]*)/si’, $html, $m ) ) {
$excerpt = esc_html($m[1]);
}
}
if (preg_match(‘/property=”og:site_name”\s*content=”([^”]*)/si’, $html, $m ) ) {
$site_name = esc_html($m[1]);
} else {
$m = parse_url($url );
$site_name = $m[‘host’];
}
}
curl_close($ch );
$result = $wpdb->insert(
$wpdb->prefix.’popo_blogcard’,
array(
‘url’ => $url,
‘site_name’ => $site_name,
‘title’ => $title,
‘excerpt’ => $excerpt
)
);
}
$html = ‘

‘;
return $html;
}
public function activate() {
global $wpdb;
$wpdb->hide_errors();
require_once (ABSPATH.’wp-admin/includes/upgrade.php’);
$sql = “CREATE TABLE “.$wpdb->prefix.”popo_blogcard (
url VARCHAR(2048) DEFAULT ”,
site_name VARCHAR(100) DEFAULT ”,
title VARCHAR(200) DEFAULT ”,
excerpt VARCHAR(500) DEFAULT ”,
) “.$wpdb->get_charset_collate().” ;”;
dbDelta($sql);
}
public function deactivate() {
global $wpdb;
$sql = “DROP TABLE “.$wpdb->prefix.”popo_blogcard”;
$wpdb->query($sql);
}
function enqueue() {
wp_enqueue_style(‘popo-blogcard’, plugin_dir_url(__FILE__).’style.css’);
}
}
$popo_blogcard = new popo_blogcard;[/php]

スタイルシート

[css title=”style.css”].popo_bc_wrap {
margin: 16px;
padding: 8px;
width: 96%;
border: 2px solid #8888ff;
background-color: #ffffff;
border-radius: 3px;
}
.popo_bc_link {
text-decoration: none;
}
.popo_bc_site_name {
display: block;
font-size: 12px;
}
.popo_bc_title {
display: block;
font-size: 18px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.popo_bc_url {
display: block;
font-size: 12px;
color: #00f;
text-decoration: underline;
}
.popo_bc_excerpt {
height: 32px;
font-size: 12px;
color: #444;
overflow: hidden;
text-overflow: ellipsis;
}[/css]

次回は・・・

だいたい終わりが見えてきました。

少し寂しいので次回はサムネイルを追加しようと思います。

[link url=”https://popozure.info/20180825/13334″]

では、この辺で。(^-^)o

[amzn-link asin=”4774187062″][amzn-link asin=”B00M939Y0I”][amzn-link asin=”4798143774″][amzn-link asin=”4797393114″][amzn-link asin=”4774195723″]

リンクをカードにするプラグインを作ろう!(7)スタイルシートを設定する

スタイルシートを設定してブログカードっぽい見た目にします。

前回まで

文字コードをUTF-8にしました。

[link url=”https://popozure.info/20180818/13278″]

スタイルシートのファイルを用意する

ファイルを作成する

プラグインと同じディレクトリに「style.css」という名前でファイルを用意します。

スタイルシートを記述する

こんな感じにしてみました。

文字コードは「UTF-8」です。

[css title=”style.css” mark=”1-35″].popo_bc_wrap {
margin: 16px;
padding: 8px;
width: 96%;
border: 2px solid #8888ff;
background-color: #ffffff;
border-radius: 3px;
}
.popo_bc_link {
text-decoration: none;
}
.popo_bc_site_name {
display: block;
font-size: 12px;
}
.popo_bc_title {
display: block;
font-size: 18px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.popo_bc_url {
display: block;
font-size: 12px;
color: #00f;
text-decoration: underline;
}
.popo_bc_excerpt {
height: 32px;
font-size: 12px;
color: #444;
overflow: hidden;
text-overflow: ellipsis;
}[/css]

スタイルシートを呼び出す

スタイルシートを呼び出す記述をします。

フックを設定する

スクリプト等を呼び出す「wp_enqueue_scripts」というタイミングで「enqueue」を呼び出すように記述します。

[php title=”popo-blogcard.php” start-line=”11″ mark=”3″] function __construct() {
add_shortcode(‘blogcard’, array($this, ‘shortcode’ ) );
add_action(‘wp_enqueue_scripts’, array($this, ‘enqueue’ ) );
}[/php]

呼ばれる関数を記述する

「wp_enqueue_scripts」というタイミングで呼ばれる関数を記述します。

[php title=”popo-blogcard.php” start-line=”54″ mark=”5-6″] curl_close($ch );
$html = ‘

‘.$site_name.’
‘.$title.’
‘.$url.’
‘.$excerpt.’
‘;
return $html;
}
function enqueue() {
}
}
$popo_blogcard = new popo_blogcard;[/php]

呼ばれる関数を記述する

プラグインと同じディレクトリにあるスタイルシートのファイル「style.css」が呼び出されるように記述します。

[php title=”popo-blogcard.php” start-line=”54″ mark=”6″] curl_close($ch );
$html = ‘

‘.$site_name.’
‘.$title.’
‘.$url.’
‘.$excerpt.’
‘;
return $html;
}
function enqueue() {
wp_enqueue_style(‘popo-blogcard’, plugin_dir_url(__FILE__).’style.css’);
}
}
$popo_blogcard = new popo_blogcard;[/php]

スタイルシートに合わせてHTMLを直す

こんな感じの構造にしました。

popo_blogcard

popo_bc_wrap

popo_bc_site_name
popo_bc_site_content

popo_bc_title
popo_bc_url
popo_bc_excerpt

[php title=”popo-blogcard.php” start-line=”54″ mark=”2″] curl_close($ch );
$html = ‘

‘;
return $html;
}[/php]

ブログカードっぽい表示になった

表示させてみます。


だいぶ「ブログカード」っぽくなってきました。

今回のコード

今回はここまでです。

プラグイン本体

[php title=”popo-blogcard.php”]]*>\s*([^<]*)\s*<\s*\/title\s*[^>]*>/si’, $html, $m ) ) {
$title = esc_html($m[1]);
}
}
if (preg_match(‘/property=”og:description”\s*content=”([^”]*)/si’, $html, $m ) ) {
$excerpt = esc_html($m[1]);
} else {
if (preg_match(‘/name=”description”\s*content=”([^”]*)/si’, $html, $m ) ) {
$excerpt = esc_html($m[1]);
}
}
if (preg_match(‘/property=”og:site_name”\s*content=”([^”]*)/si’, $html, $m ) ) {
$site_name = esc_html($m[1]);
} else {
$m = parse_url($url );
$site_name = $m[‘host’];
}
}
curl_close($ch );
$html = ‘

‘;
return $html;
}
function enqueue() {
wp_enqueue_style(‘popo-blogcard’, plugin_dir_url(__FILE__).’style.css’);
}
}
$popo_blogcard = new popo_blogcard;[/php]

スタイルシート

[css title=”style.css”].popo_bc_wrap {
margin: 16px;
padding: 8px;
width: 96%;
border: 2px solid #8888ff;
background-color: #ffffff;
border-radius: 3px;
}
.popo_bc_link {
text-decoration: none;
}
.popo_bc_site_name {
display: block;
font-size: 12px;
}
.popo_bc_title {
display: block;
font-size: 18px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.popo_bc_url {
display: block;
font-size: 12px;
color: #00f;
text-decoration: underline;
}
.popo_bc_excerpt {
height: 32px;
font-size: 12px;
color: #444;
overflow: hidden;
text-overflow: ellipsis;
}[/css]

次回は・・・

いよいよ要。

データベースにテーブルを作って、データをキャッシュしようと思います。

[link url=”https://popozure.info/20180824/13323″]

では、この辺で。(^-^)o

[amzn-link asin=”4774187062″][amzn-link asin=”B00M939Y0I”][amzn-link asin=”4798143774″][amzn-link asin=”4797393157″][amzn-link asin=”4774190640″]