"\n",
"\r" => "\n",
'' => "\n",
'
' => "\n",
'
' => "\n",
'
' => "\n",
'' => "\n",
'' => "\n",
);
$postcontent = strtr($_POST[content], $okikae);
$postcontent .="\n" . $_POST[post_title];
if (get_option('tagtagjidou') != "") {
$jidoutagsettei = str_replace(".", "\.", get_option('tagtagjidou'));
$jidoutagsettei = str_replace(",", "|", $jidoutagsettei);
preg_match_all("/(?<=$jidoutagsettei).+?(?=[ \t\n\r\f\v <])/iu", $postcontent, $out);
$countcate = count($out[0]);
for ($i = 0; $i < $countcate; $i++) {
if (mb_detect_encoding($out[0][$i]) == "UTF-8") {
$jidoutaglist .= $out[0][$i] . ",";
}
}
}
if (get_option('adrestag') == 1) {
// /.*(?<=keywords=)([a-zA-Z%0-9 ]+)/ium
// /(?<=\/)(%.+?)(?=\/dp)/ium
preg_match_all("/h?ttps?.+(?=[ \t\n\r\f\v><])/ium", $postcontent, $adres);
foreach ($adres[0] as $vary) {
$utlvaru = NULL;
if (strpos($vary, "keywords=") !== false) {
$utlvaru = preg_replace("/.*(?<=keywords=)([a-zA-Z%0-9 ]+)/iu", "$1", $vary);
} elseif (strpos($vary, "/dp/") !== false) {
$utlvaru = preg_replace("/.*(?<=\/)(%.+?)(?=\/dp).*/iu", "$1", $vary);
} else {
continue;
}
$utlvaru = urldecode($utlvaru);
if (mb_detect_encoding($utlvaru) == "UTF-8") {
$urltag .= $utlvaru . ",";
}
}
// $urltag = mb_convert_encoding($urltag, 'utf8', 'sjis');
}
$postcontent = strip_tags(stripslashes($postcontent));
//タグ一覧を取得。一つずつ内容と比較して同一の物があればタグリストに追加する。
$rendotaglist = explode(",", get_option('tagtag_rendo'));
$rendotaglistcount = count($rendotaglist);
$ngtaglist = explode(",", get_option('tagtag_ng'));
$allngflag = get_option('tagtagallng');
foreach (get_tags('hide_empty=0') as $tag) {
$flag = 0;
if (strpos($postcontent, $tag->name) !== false) {
// 連動タグ動作
for ($i = 0; $i < $rendotaglistcount; $i++) {
if ($rendotaglist[$i] == $tag->name)
$tagtag .= $rendotaglist[$i + 1] . ",";
++$i;
}
// NGタグ検知
if ($allngflag != 1) {
foreach ($ngtaglist as $ngtag) {
if ($ngtag == $tag->name)
$flag = 1;
}
}else {
$flag = 1;
}
// フラグが立たなければタグに登録できる。
if ($flag != 1) {
$tagtag .= $tag->name . ",";
}
}
}
//現在のタグと追加するタグを合わせる。同一名称はwordpress側で排除されるので気にしない☆$jidoutaglist
$taglist = $tagtag . $jidoutaglist . $urltag;
$taglist = rtrim(preg_replace("/,(?=,)/iu", "", $taglist), ",");
// file_put_contents("sample3.txt", $taglist);
wp_add_post_tags($_POST[post_ID], $taglist);
}
add_action('save_post', 'post_tag_maker', 11);
// ダッシュボード設定へのリンクを追加
function aoringotagtag_option_menu() {
add_submenu_page('options-general.php', 'aoringo TAG upperの設定', 'aoringo TAG upperの設定', 8, __FILE__, 'aoringotagtag_admin_page');
}
add_action('admin_menu', 'aoringotagtag_option_menu');
//***************************************************************** 以下設定画面用コード ****************************************************//
// 設定画面構成コード
function aoringotagtag_admin_page() {
//設定保存用処理、改行や今後の処理に関わりそうな文字を整理する。タグなども除去している。
$jokyo = array("\n" => "", "\r" => "", "$" => "", '"' => """,
"'" => "'",
'\\' => "",
"" => " ",
"<" => "<",
">" => ">",
"@" => "©",
"$" => "$",);
if ($_POST['posted'] == 'Y') {
update_option('tagtag_ng', rtrim(preg_replace("/,(?=,)/iu", "", strtr(strip_tags(stripslashes($_POST['tagtag_ng'])), $jokyo)), ","));
update_option('tagtag_rendo', rtrim(preg_replace("/,(?=,)/iu", "", strtr(strip_tags(stripslashes($_POST['tagtag_rendo'])), $jokyo)), ","));
update_option('tagtagallng', $_POST['tagtagallng']);
update_option('adrestag', $_POST['adrestag']);
// 五個以上の設定は消去
$jidoutaghairetu = explode(",", rtrim(preg_replace("/,(?=,)/iu", "", strtr(strip_tags(stripslashes($_POST['tagtagjidou'])), $jokyo)), ","));
$jidoutaghairetucount = count($jidoutaghairetu);
for ($i = 0; $i < $jidoutaghairetucount; $i++) {
if ($i < 5)
$jidoutag .= $jidoutaghairetu[$i] . ",";
}
update_option('tagtagjidou', rtrim($jidoutag, ","));
//if( is_numeric( $_POST[ 'loglog_table_pa_sen' ] ) >= 100 ) {update_option('loglog_table_pa_sen', strip_tags(stripslashes($_POST['loglog_table_pa_sen'])));}
}
// htmlで記述するため一旦phpから外れてend文では隠すようにしている。
if ($_POST['posted'] == 'Y') :
?>