忍者ブログ
18 January

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

17 April

Contact Form 7 add confirmがCF75.4から動作しなくなった件

ありがたいサイト 確認画面アドオンが動作するように対応するコード
https://www.progress-llc.co.jp/blog/post-20210318/

ありがたいサイト 完了画面へのリダイレクト
https://engun.co.jp/wordpress-contact-form-7-thanks_page/

※ただし送信完了メッセージがでなくなるので、完了画面を固定ページで作る。
※完了画面に飛ぶ。メールフォーム書き込むとこの下にこれを入れておく
<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
location = 'http://◯◯◯/thanks';
}, false );
</script>


2021/4月に新しいサイトを作ったところ、「確認」ボタン後の挙動がおかしい…
cf7は重要な仕様変えまくるので拡張アドオンが動作しないとかよくある
調べてみるとcf75.4のアプデで「add confirm」が動作しなくなったらしい
応急処置は上記サイトで出来たからいいとして、あーどうしようかなー
全部のサイトこれ使ってるんですけどー

MWWPFORM使いたくない
設定がめんどくさい
日本の確認画面と完了画面文化滅んでほしい
お問い合わせフォームで工数釣り上げないとめんどくさくてやってられねーよ

ーーーーーーーーーーーーーーーーー
plugins/contact-form-7-add-confirm/includes/js/scripts.js

(function(jQuery){
if(jQuery(".wpcf7c-elm-step1").length != 0) {
// 対象有り
jQuery(".wpcf7c-elm-step1").each(function(){
// 親のフォームを検索
var parent = jQuery(this).parents("form");
if(parent.attr("wpcf7c") == undefined) {
// elm-submitをsubmitボタンへもセット
parent.find(".wpcf7-submit").addClass("wpcf7c-elm-step2").addClass("wpcf7c-force-hide");
parent.find(".ajax-loader").addClass("wpcf7c-elm-step2").addClass("wpcf7c-force-hide");
// ajax用ID退避,処理済みフラグセット
var hidden_wpcf7 = parent.find("input[name=_wpcf7]");
var _wpcf7 = hidden_wpcf7.val();
parent.attr("wpcf7c", _wpcf7);
parent.attr("step", 1);
hidden_wpcf7.after('<input type="hidden" name="_wpcf7c" value="step1" />');
//parent.find("input[name=_wpcf7]").val("");
// 不要要素非表示
parent.find(".wpcf7c-elm-step2").addClass("wpcf7c-force-hide");
parent.find(".wpcf7c-elm-step3").addClass("wpcf7c-force-hide");
parent.find(".wpcf7c-elm-step1").removeClass("wpcf7c-force-hide");
// 戻って編集ボタン挙動
parent.find(".wpcf7c-btn-back").on("click", function(){
wpcf7c_to_step1(parent, true);
return false;
});
}
});
}
})(jQuery);
var wpcf7c_to_step1 = function(parent, scroll){
parent.find(".wpcf7c-conf").each(function(){
// 親フォーム
var parent_form = jQuery(this).parents("form");
jQuery(this).removeAttr("disabled").removeAttr("readonly").removeClass("wpcf7c-conf");
});
jQuery(".wpcf7c-conf-hidden").remove();
parent.find(".wpcf7c-elm-step2").addClass("wpcf7c-force-hide");
parent.find(".wpcf7c-elm-step3").addClass("wpcf7c-force-hide");
parent.find(".wpcf7c-elm-step1").removeClass("wpcf7c-force-hide");
parent.find("input[name=_wpcf7c]").val("step1");
var responseOutput = parent.find('div.wpcf7-response-output');
responseOutput.removeClass("wpcf7c-force-hide");
responseOutput.removeClass("wpcf7-mail-sent-ng");
responseOutput.css("display", "none");
parent.find(".ajax-loader").addClass("wpcf7c-elm-step2").addClass("wpcf7c-force-hide");
// スムーズスクロール
if(scroll) {
// スムーズスクロール
setTimeout(function() { wpcf7c_scroll(parent.find("input[name=_wpcf7_unit_tag]").val()) }, 100);
// 確認ボタン挙動 https://www.progress-llc.co.jp/blog/post-20210318/
       parent.find(".wpcf7c-btn-confirm").on("click", function() {
         responseOutput.css("display", "");
       });
}
}
var wpcf7c_step1 = function(unit_tag){
// 確認完了
// 対象フォーム検索
//var elm_unit_tag = jQuery.find("input[name=_wpcf7_unit_tag]");
jQuery(jQuery.find("input[name=_wpcf7_unit_tag]")).each(function(){
if(jQuery(this).val() == unit_tag) {
var parent = jQuery(this).parents("form");
var responseOutput = parent.find('div.wpcf7-response-output');
responseOutput.addClass("wpcf7c-force-hide");
// 確認画面表示
// テキストエリアを伸ばす
parent.find("textarea").each(function(){
if(this.scrollHeight > this.offsetHeight){
this.style.height = (this.scrollHeight + 10) + 'px';
}
});
parent.find("textarea").attr("readonly", true).addClass("wpcf7c-conf");
parent.find("select").each(function(){
jQuery(this).attr("readonly", true).attr("disabled", true).addClass("wpcf7c-conf");
jQuery(this).after(
jQuery('<input type="hidden" />').attr("name", jQuery(this).attr("name")).val(jQuery(this).val()).addClass("wpcf7c-conf-hidden")
);
});
parent.find("input").each(function(){
switch(jQuery(this).attr("type")) {
case "submit":
case "button":
case "hidden":
case "image":
// なにもしない
break;
case "radio":
case "checkbox":
// 選択されているものだけ対処
jQuery(this).attr("readonly", true).attr("disabled", true).addClass("wpcf7c-conf");
if(jQuery(this).is(":checked")) {
jQuery(this).after(
jQuery('<input type="hidden" />').attr("name", jQuery(this).attr("name")).val(jQuery(this).val()).addClass("wpcf7c-conf-hidden")
);
}
break;
case "file":
jQuery(this).attr("readonly", true).addClass("wpcf7c-elm-step1").addClass("wpcf7c-force-hide");
jQuery(this).after(
jQuery('<input type="text" />').attr("name", (jQuery(this).attr("name") + "_conf")).val(jQuery(this).val()).addClass("wpcf7c-conf-hidden").addClass("wpcf7c-conf").attr("readonly", true).attr("disabled", true)
);
break;
default:
jQuery(this).attr("readonly", true).addClass("wpcf7c-conf");
jQuery(this).after(
jQuery('<input type="hidden" />').attr("name", jQuery(this).attr("name")).val(jQuery(this).val()).addClass("wpcf7c-conf-hidden")
);
break;
}
});
// 表示切替
parent.find(".wpcf7c-elm-step1").addClass("wpcf7c-force-hide");
parent.find(".wpcf7c-elm-step3").addClass("wpcf7c-force-hide");
parent.find(".wpcf7c-elm-step2").removeClass("wpcf7c-force-hide");
parent.find(".ajax-loader").removeClass("wpcf7c-force-hide");
parent.find("input[name=_wpcf7c]").val("step2");
// スムーズスクロール
setTimeout(function() { wpcf7c_scroll(unit_tag) }, 100);
}
});
}
var wpcf7c_scroll = function(unit_tag) {
// エラーの時などにアンカーまでスクロール
jQuery(jQuery.find("input[name=_wpcf7_unit_tag]")).each(function(){
if(jQuery(this).val() == unit_tag) {
var parent = jQuery(this).parents("form");
var speed = 1000;
var position = parent.offset().top;
if(jQuery('.wpcf7c-anchor').length != 0) {
position = jQuery('.wpcf7c-anchor').offset().top;
}
jQuery("html, body").animate({scrollTop:position}, speed, "swing");
}
});
}
var wpcf7c_step2 = function(unit_tag){
// 確認完了
// 対象フォーム検索
//var elm_unit_tag = jQuery.find("input[name=_wpcf7_unit_tag]");
jQuery(jQuery.find("input[name=_wpcf7_unit_tag]")).each(function(){
if(jQuery(this).val() == unit_tag) {
var parent = jQuery(this).parents("form");
var responseOutput = parent.find('div.wpcf7-response-output');
responseOutput.removeClass("wpcf7c-force-hide");
// step1状態の画面表示
wpcf7c_to_step1(parent);
// step3の要素があれば、それに切り替える
if(parent.find(".wpcf7c-elm-step3").length != 0) {
// 表示切替
parent.find(".wpcf7c-elm-step1").addClass("wpcf7c-force-hide");
parent.find(".wpcf7c-elm-step2").addClass("wpcf7c-force-hide");
parent.find(".wpcf7c-elm-step3").removeClass("wpcf7c-force-hide");
}
}
});
}
var wpcf7c_step2_error = function(unit_tag) {
jQuery(jQuery.find("input[name=_wpcf7_unit_tag]")).each(function(){
if(jQuery(this).val() == unit_tag) {
var parent = jQuery(this).parents("form");
var responseOutput = parent.find('div.wpcf7-response-output');
responseOutput.removeClass("wpcf7c-force-hide");
}
});
}
/*document.addEventListener( 'wpcf7submit', function( event ) {
switch ( event.detail.status ) {
case 'wpcf7c_confirmed':
wpcf7c_step1(event.detail.id);
break;
case 'mail_sent':
wpcf7c_step2(event.detail.id);
break;
}*/
/*    https://www.progress-llc.co.jp/blog/post-20210318/   */
 document.addEventListener( 'wpcf7submit', function( event ) {
        switch ( event.detail.status ) {
        case 'wpcf7c_confirmed':
        wpcf7c_step1(event.detail.id);
        wpcf7c_step1(event.detail.unitTag);
break;
case 'mail_sent':
   wpcf7c_step2(event.detail.id);
   wpcf7c_step2(event.detail.unitTag);
break;
}
}, false );
PR
09 April

imgタグのsvgをcssで変更できるようにするjquery

ありがたい解説サイト

https://pgmemo.tokyo/data/archives/1025.html
ーーーーーーーーーーーーーーーーー

 <script src="//cdn.jsdelivr.net/npm/desvg@1.0.2/desvg.min.js"></script>
<script>
window.addEventListener('load', function(){
  deSVG('.desvg', true);
});
</script>

<img class="desvg" src="◯◯◯.svg">
07 January

zenlogic phpの反映が遅いクソサーバー

https://moralhazard.jp/2019/01/26/zenlogic_opcache/
https://it-trouble.help/zenlogic%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A7php%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%A4%89%E6%9B%B4%E3%81%8C%E5%8F%8D%E6%98%A0%E3%81%95%E3%82%8C%E3%82%8B%E3%81%AE%E3%81%AB%E6%99%82%E9%96%93/

WPのphpコードを書いて更新しても反映されない
コードはあってると思うのに反映されない
何度かやってみたら反映が遅いことがわかった

zenlogicとかいう色々設定がが使いづらいクソサーバーなのでキャッシュ設定の可能性があると思い調べたら、上記サイトが出てきた
キャッシュ解除?みたいなコードをhtaccessに書く方法があるらしいが、なんかエラーでたとか
書いてあったので他人の稼働済みサイトのため試してません

前に作成したときはこんなキャッシュなかったんだが、私は全く詳しくないのでzenlogicが設定を変えたのかphpのverのせいなのかは分からない
とにかくzenlogicでWPコーディング案件があったらまず死ぬね
プログラムに明るくないので間違ってるのかキャッシュなのかすぐに分からないから困る。

これがWP構築だったらtheme作りが進まない。時間が余計にかかる。イライラする
zenlogicはクソサーバーなので使わないほうがよい
05 September

アップグレードで使えなくなる可能性があるプラグイン

WP5.5からの全部jqueryのエラーだとおもう

Responsive Menu
ダウングレードで対応
中身が表示されなくなる。

Easy Table of Contents
「自動挿入」にすると何故か下部にもでてきて2つ目次が表示される
自動無効化の上、ショートコード埋め込みで治る
だが今度は目次をクリックしてもアンカーリンクで飛ばない

「自動挿入を無効化」するとh2などの中にアンカーリンクのためのspanとclassが挿入されない。
自動挿入ってそういうことなの?目次を入れる場所が自動って意味じゃないの?
超意味不明

「自動挿入有効化」でアンカーリンクは飛ぶようになるが、クリックするとシンタックスエラーがでる。検索するとアンカーリンク飛ばしの書き方が原因らしい
https://hacknote.jp/archives/18569/

プラグインの中身をみたけどわからないので直せません!

よくみるとsingle.php内に配置したcontet blockの中になぜか呼び出されている…
content blocks内に「the_content();」があるから?
目次プラグインのコードの判定が色々甘いっつーことなのか
26 August

ターム系に関する書き方

WordPress:タームのアーカイブページで、タイトルやスラッグなどの各種情報を取得・表示する方法
※タームの基本的な情報取得方法
このサイトの人は超わかりやすいので、いろいろ参考になる記事がたくさんある
https://www.nxworld.net/wordpress/wp-get-and-display-various-information-on-term-archive-page.html


WordPress タームの取得と表示方法
この方の記事もわかりやすい。素人がわからん点をちゃんと書いてくれる
※神すぎる。いろんなパターンがのっていてコピペでいける。
https://hirashimatakumi.com/blog/164.html


※タームにACFを設置して取得する方法

カテゴリやタームに紐づけたカスタムフィールドを取得し、表示する
https://100webdesign.jp/services/wordpress/wp_result/wp_result-391/

Advanced Custom Fields で登録したタームのフィールド値を取得する方法
https://hirashimatakumi.com/blog/1365.html



※ターム一覧表示方法

WordPress ターム一覧とそのタームに紐づく投稿一覧の表示方法
https://hirashimatakumi.com/blog/4147.html

WordPress で get_terms を使ったターム一覧の表示方法
※ターム一覧にcurrentをつけたいときの方法も載っている
https://hirashimatakumi.com/blog/5509.html



※foreachにエラーが出る (array)を足す
foreach((array)$data as $value){
  ...
}
https://qiita.com/takuma-jpn/items/678876ad12b9ae9998ac




複数カスタムタクソノミー横断で、同一タームの記事の一覧を取得する
https://100webdesign.jp/services/wordpress/wp_result/wp_result-187/