@Blog{zip358.com}
日常日誌からプログラムやYOUTUBER紹介、旅日記まで日々更新中です。
WordPress5.9からかなり仕様が変わります。それで?
2021.12.20
寒い日が続きますね、昨日も今日の朝もかなり冬って感じの朝だな…?
さてショッキングな情報を先日、耳にしましたので共有します。WordPress5.9からテンプレート仕様が大きく変わるみたいですね。かなりガラリと変わります。どのように変わるかはこちらのサイトとこちらのサイトでご確認くださいませ。尚、今までのテンプレートは今の所、バージョンアップしても使えるとは思いますが、5.9以降、バージョンアップにつれて今までのテンプレートは使用できなくなるのは目に見えています。
テンプレートの仕様が変わることにより、色の変更や配置などがGUI(グラフィカルユーザーインターフェース)で簡単に操作出来るようになります。今後、ちょっとした色の変更や見栄えなどの変更をユーザーが簡単にできてしまうようになるという事はWEBを生業としている業界からすると、かなり痛手かと思います。
WP5.9の対応してしまった後は、仕事が激減しそうな気さえします。やはりウェブはウェブ制作だけでは食べていけない、そんな感じになってくるのではないかなとヒシヒシと感じます。
このサイトもWP5.9がリリースされたら、オリジナルテンプレートを作って運用していく事になりそうです。
以上、現場からでした。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
5.9, GUI, web, WordPress, wp, アップ, インターフェース, かなり, グラフィカル, こちら, こと, ご確認, サイト, ショッキング, テンプレート, バージョン, ユーザー, 事, 今, 今後, 今日, 仕事, 仕様, 使用, 先日, 共有, 冬, 変更, 対応, 後, 情報, 所, 操作, 日, 昨日, 朝, 業界, 生業, 痛手, 目, 簡単, 耳, 色, 見栄え, 配置,
NTTのCOTOHA API(コトハAPI)でWordPressの自動タグ生成プラグインを作ってみた。
2020.02.20
GUIはこんな感じになります。
jp-auto-tagというプラグインをYahoo!APIを使用し作っていましたが
何だか、バージョンが変わるらしくてその対応するのが…。コトハAPIで同じ感じのものを作ってみました。
面倒くさいなぁと感じたので
尚、jp-auto-tagを使用している方はjp-auto-tagを停止してjp-auto-tag2をご使用ください。また圧縮ファイルを解凍しワードプレスのプラグインフォルダにフォルダごと、アップロードしプラグイン有効にしAPIの設定すると自動タグが生成可能です。
ブログ投稿時にタグが自動生成されますので、確認の際は画面を再読み込みしてご確認ください。
尚、オプションデータは残り続けますので悪しからず?
プラグインのソースコードはこんな感じになります。
<?php
/*
Plugin Name: jp-auto-tag2
Version: 0.1.10
Description: auto jp tag2
Author: taoka toshiaki
Author URI: https://zip358.com/
Plugin URI: https://zip358.com/plugin/jp-auto-tag2.zip
*/
class jp_auto_tag2
{
public $db_option = "jp_auto_tag2";
function frm_page2()
{
add_menu_page('jp-auto-tag2', 'jp-auto-tag2', 'manage_options', __FILE__, array($this, 'show_text_option_page2'), '', 8);
}
function show_text_option_page2()
{
wp_enqueue_style('bootstrap', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css', array(), '3.3.6');
wp_enqueue_script('bootstrap', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js', array(), '3.3.6');
$options = get_option($this->db_option);
if (!empty($options)) {
$Access_Token_Publish_URL = $options["Access_Token_Publish_URL"];
$API_Base_URL = $options["API_Base_URL"];
$Client_ID = $options["Client_ID"];
$Client_secret = $options["Client_secret"];
$max_keyword_num = $options["max_keyword_num"];
}
include_once dirname(__FILE__) . '/jp-auto-tag-tmp2.php';
}
function ajax_event2()
{
$options["max_keyword_num"] = $obj["max_keyword_num"] = (int)$_POST["max_keyword_num"]<5?5:(int)$_POST["max_keyword_num"];
$options["Access_Token_Publish_URL"] = $obj["Access_Token_Publish_URL"] = $_POST["Access_Token_Publish_URL"];
$options["API_Base_URL"] = $obj["API_Base_URL"] = $_POST["API_Base_URL"];
$options["Client_ID"] = $obj["Client_ID"] = $_POST["Client_ID"];
$options["Client_secret"] = $obj["Client_secret"] = $_POST["Client_secret"];
update_option($this->db_option, $options);
print json_encode($obj);
die(0);
}
function api_tag2($post_id)
{
$cuthttp = function ($str = "") {
if (!$str) return $str;
return preg_replace("/https?:\/\/[a-zA-Z0-9|%|\?|_|=|-|\.|\/]*$/m", "", $str);
};
$post = get_post($post_id);
$title = $post->post_title;
$content = strip_tags($post->post_content);
$document = $title . $cuthttp($content);
$options = get_option($this->db_option);
if ($options["Access_Token_Publish_URL"] && $options["Client_ID"] && $options["Client_secret"]) {
$curl = function ($ptn, $options, $token = "", $token_type = "", $document = "") {
switch ($ptn) {
case "token":
$data = [
'grantType' => 'client_credentials',
'clientId' => $options["Client_ID"],
'clientSecret' => $options["Client_secret"],
];
$header = [
'Content-Type: application/json;charset=UTF-8',
];
$url = $options["Access_Token_Publish_URL"];
break;
case "tag":
$data = [
'document' => $document,
'max_keyword_num'=>$options["max_keyword_num"],
];
$header = [
'Authorization: ' . ucfirst($token_type) . ' ' . $token,
'Content-Type: application/json;charset=UTF-8',
];
$url = rtrim($options["API_Base_URL"],"/")."/nlp/v1/keyword";
break;
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
$response = curl_exec($curl);
$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);
$res = (object)json_decode($body, true);
curl_close($curl);
return $res;
};
$res = $curl("token", $options);
$access_token = $res->access_token;
$token_type = $res->token_type;
if ($options["API_Base_URL"] && $document && $access_token){
$res = $curl("tag", $options, $access_token, $token_type, $document);
foreach($res->result as $key=>$val){
$tags[] = $val["form"];
}
wp_set_post_tags($post_id, implode(",", array_unique($tags)), false);
}
}
}
}
$jp_auto_tag2 = new jp_auto_tag2();
add_action('save_post', array($jp_auto_tag2, 'api_tag2'));
add_action('publish_post', array($jp_auto_tag2, 'api_tag2'));
add_action('admin_menu', array($jp_auto_tag2, 'frm_page2'));
add_action('wp_ajax_ajax_event2', array($jp_auto_tag2, 'ajax_event2'));
<form id="ajax-frm">
<table class="table">
<tr>
<td>
プラグイン説明:jp-auto-tag2はapi.ce-cotoha.comのAPIを<br>
使用し投稿文を解析しキーワードをタグを抽出します。<br>
</td>
</tr>
<tr>
<td>
<a href="https://api.ce-cotoha.com/contents/index.html" target="new">https://api.ce-cotoha.com/contents/index.html</a><br>
上記のURLよりユーザー登録を行いAPI情報をそれぞれ入力ください。全て必須項目になります。
</td>
</tr>
<tr>
<td>
Access Token Publish URL:<br>
<input type="text" name="Access_Token_Publish_URL" value="<?=$Access_Token_Publish_URL?>" class="form-control">
</td>
</tr>
<tr>
<td>
API Base URL:<br>
<input type="text" name="API_Base_URL" value="<?=$API_Base_URL?>" class="form-control">
</td>
</tr>
<tr>
<td>
Client ID:<br>
<input type="text" name="Client_ID" value="<?=$Client_ID?>" class="form-control">
</td>
</tr>
<tr>
<td>
Client_secret:<br>
<input type="text" name="Client_secret" value="<?=$Client_secret?>" class="form-control">
</td>
</tr>
<tr>
<td>
抽出するキーワード(タグ数)5以上:<br>
<?php
$max_keyword_num = (int)$max_keyword_num<5?5:$max_keyword_num;
?>
<input type="text" name="max_keyword_num" value="<?=$max_keyword_num?>" class="form-control">
</td>
</tr>
<tr>
<td colspan="2"><input type="button" id="frmsubmit" value="登録する" class="form-control"></td>
</tr>
</table>
</form>
<script>
jQuery(function($){
$("#frmsubmit").on("click",function(){
var ajaxurl = '<?=admin_url( 'admin-ajax.php');?>';
var data = $("#ajax-frm").serializeArray();
data.push({name:"action",value:"ajax_event2"});
$.ajax({
type:'POST',
url:ajaxurl,
data:data,
success:function(obj){
console.log(obj);
alert("更新しました");
}
});
});
})
</script>
プラグインダウンロードはこちら
https://zip358.com/plugin/jp-auto-tag2.zip
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
2, API, COTOHA, GUI, jp-auto-tag, lt, name, NTT, php, plugin, WordPress, Yahoo, アップロード, オプション, コード, ことば, ご確認, ソース, タグ, データ, バージョン, ファイル, フォルダ, プラグイン, プレス, ブログ, もの, ワード, 使用, 停止, 可能, 圧縮, 対応, 感じ, 投稿, 方, 有効, 生成, 画面, 確認, 自動, 自動生成, 解凍, 設定, 際,