array_multisort で お客様の声 やクライアントの事例を並び替えた。配列の並び替え

まず過去記事array_multisortでけんさくすれば色々出てくる。

まとめ

お客様の声 koe_roop_d

 

<?php
    
        $args = array(
        'posts_per_page' => -1,
        'post_type'      => array('jirei','d_jirei'),  // カスタム投稿タイプ名
  'tax_query'      => array(
    array(
      'taxonomy' => 'client',  // カスタムタクソノミー名
      'field'    => 'term_id',  // ターム名を term_id,slug,name のどれで指定するか
      'terms'    => get_field('client_tax'), // タクソノミーに属するターム名
    )
  )
);
 
    $myposts = get_posts( $args );
    

        $ar1 = array(); 
     $ar2 = array(); 
    foreach($myposts as $key):
    $ar1[] = $key -> post_type;	
    $ar2[] = $key -> post_date;
//		$amounts2[] = $key -> term_order;
//	$amounts[] = $key['name'];
endforeach;
    
    
//		echo "<pre>";
//	print_r($ar2) ;
//	echo "</pre>";
    

    
    array_multisort($ar1,SORT_DESC, SORT_STRING,$ar2, SORT_DESC, SORT_STRING,$myposts);
    
if(! $myposts){ }
    foreach ( $myposts as $post ) : setup_postdata( $post ); ?>

と続く並び替え用の配列と 並び替えの配列数は同じでなければならない。

感覚的には、配列1が 1,0,1,0 だとして、それを基準に並び替える場合

配列2の該当場所が並び替わるという感じ

つまり配列2が さる,うま,ひつじ,とり だとすると

ASCで並び替えると 0,0,1,1となるので

さる,ひつじ,うま,とり という感じ。

今回はポストタイプ別にHP制作事例を表示し、その後デザイン事例、 登録新しい順ということ、。

日付のデータは数字だが、多分同じ日付だと 時間の前に スペースがあるので 数として同じに扱われているようで、 あえて 数字 スターリングにした。

上記は、mypostをならびかえたが、

下記はタクソノミーで$postsを並び替えた。

 

<div class="jirei_box_all <?php if(is_tax('client')): //クライアンとなら ?>  client_all <?php endif; ?>">
<!--★★★ループ基本-->
<?php
//					echo "<pre>";
//	print_r($posts) ;
//	echo "</pre>";
        $ar1 = array(); 
     $ar2 = array(); 
    foreach($posts as $key):
    $ar1[] = $key -> post_type;	
    $ar2[] = $key -> post_date;
//		$amounts2[] = $key -> term_order;
//	$amounts[] = $key['name'];
endforeach;
    

    
    array_multisort($ar1,SORT_DESC, SORT_STRING,$ar2, SORT_DESC, SORT_STRING,$posts);
    
if ( have_posts () ) :
    while ( have_posts() ) :
        the_post();
?>
    
<?php
    
    $post_type = $post -> post_type;

 

と続く

タームアーカイブページでは

$posts ととればよかったが $postと取ると、配列のしまい方が違ったので注意

メールサーバー移転の際、DNSのTTLによって反映時間が決まるということ

https://tanaka.sakura.ad.jp/2011/03/sakura-domain-nameserver-dns-ttl.html

日々のサーバ運用を行う中で、サーバ移転を行いIPアドレスが変更される機会は少なくありません。
しかし、DNSがなかなか反映されず「浸透しない」とつぶやかれている人をよく見かけます。
これは事前にTTLを小さくしていないために発生する問題ですが、今回はさくらインターネットを例に、DNSのTTLを変更する方法を解説します。
なお、ここで解説しているのは個別のレコード(Aレコード)を変更する時だけであり、ドメイン自体の移転などNSの変更の際に有効な手段ではありませんのでご注意下さい。

さて、DNSの場合は分散してサーバが設置されています。
そのため、DNSの情報が反映されることを「浸透」と表現されることが多いのですが、電子メールのようにサーバを中継してリレーしていくわけではありませんので、決して浸透していくわけではありません。
実際にはネームサーバとクライアントの間のどこかでキャッシュされていて、しばらくの間設定が反映されないために起こる現象です。
DNSは分散されているため、ドメイン管理者側ではどのネームサーバでキャッシュされているかがわかりませんし、当然のことながら世界中のネームサーバのキャッシュをクリアするわけにもいきません。
そのためクライアントによってアクセスが出来なかってもただ待つしかなく、なかなか反映されないとやきもきする事態に陥るわけです。

これを回避する方法はひとつであり、TTLを短くして事前にキャッシュの有効期限を短縮しておくことです。
ただし、TTLは短くても1時間、長ければ24時間以上に設定されていることもあり、事前に余裕を持って行っておかなければなりません。
一番理想的な手順は、作業開始時間から「TTLで示された時間分」だけ先にTTLを変更しておき、サーバ移転と同時にDNSのIPアドレスレコードを書き換え、TTLをもとに戻すという形です。
例えば、デフォルトのTTLが86400と指定されているなら、サーバ移転の24時間前までに作業を行う必要があります。

 

DNSの時間を測れるサイト

https://mxtoolbox.com/

こちらでドメインを入れて、結果のサーバをクリックで現れる

今回さくらのネームサーバーからxserver のネームサーバーだったが、

メールのみ、23時間たってもまだ古いサーバーに届くメールがある

メールアドレスで記憶しているのか、

メールソフトが記録しているのか不明だが、

(検証結果、再起動、新規メッセージでも同じドメインinfo@d-marking.comからのメールのみ古いサーバーに届く IMAPだからか? 他のIMAPでも送らたので、覚えているのは間違いない)

返信メールで送ると古いサーバー

違うメールアドレスで新規でメール送ると新しいサーバーに届く。

 

 

今後の対策、

ネームサーバーを指定するとTTLが変更できない。
Xサーバーは60だからまだましか??

さくらは24時間なので、まずい。

1.メールのみさくらにしている場合はttlを予め短くできそう。

2.ネームサーバでさくらにしてる場合、DNSにてさくらにまず向ける必要がありそう。

・スタードメインは予め、DNSを設定してから、ネームサーバーを変更できるので、スターはそちらで、。

・たしかお名前も同じくだった気が、。

・xドメインは最初にネームサーバーを変更しなければならないのでラグが起こりそう。予めDNSを入れれるように準備しな、。

 

3.DNSをxserverでも変更できるが、どうだったっけ??

https://www.xserver.ne.jp/manual/man_domain_dns_setting.php

多分、まだ、浸かったことないかも、。

ネームサーバーをxserverに向けてるやつは、ここで変更できるかも。

 

https://www.weblab.co.jp/staff/other/4342.html

 

メールだが、IPアドレスを受信・送信サーバーでもいけるようだった。

すずきさんの場合

アイフォンでさくらのサーバー xserver 2つのサーバーを受信サーバーにすれば

2こ同じアドレスにできた。

 

メールサーバー移転の際は、

そのように2つのアドレスを受信して、

落ち着いたら、ドメイン名に戻すと言うこと

 

 

Animate.css + wow.js

「Animate.css + wow.js」でWebサイトにアニメーションをつけてみよう

現在は Animate.cssが4.0になてるので注意

https://qiita.com/yaki-shake/items/71791a6453eaf0ca99f5
このサイトではanimateClass: ‘animate__animated’ でanimate__animatedにwowを適応させているのか?

とりま、
ただしアニメーションのクラス名も
fadeIn -> animate__fadeIn
と変わっているのでお気をつけくださいまし。
のこところ

animate.css
https://animate.style/ ここでスタイルチェック

wow.js
https://www.delac.io/wow/

設置

ヘッダー

 

  <link
    rel="stylesheet"
    href="<?php echo get_template_directory_uri(); ?>/0_d/js/animate.min.css"/>

<script src="<?php echo get_template_directory_uri(); ?>/0_d/js/wow.min.js"></script>

<script>
  new WOW(
      
  //{mobile: false}
      
  ).init();
    
    
   
</script>

挿入箇所

<h2 class="d_con_title2 wow animate__animated animate__bounce"><i class=""></i>BLOG</h2>

 <div class="tsuzuki_box2">   
    <a href="/ブログトップ/" class="btn_d wow animate__animated animate__fadeInUp" >BLOG TOP <i class=" icon-right-open"></i></a>
    </div>

 

管理画面 タイトル disp に 文字カウントを足す

WordPress:入力文字数の制限や補足文の追加など、管理画面の抜粋入力欄周りをカスタマイズする方法

参考

// SEO 文字カウント
function excerpt_count() {
?>
<script>
  (function($) {
    var count = 130;
    $('.acf-field-5c64e5255254a label').after('<span style=\"color:#888; font-size:12px;\">現在の文字数: <span id=\"excerpt-count\"></span> / '+ count +'</span>');
    $('#excerpt-count').text($('#acf-field_5c64e5255254a').val().length);
    $('#acf-field_5c64e5255254a').keyup(function() {
      $('#excerpt-count').text($('#acf-field_5c64e5255254a').val().length);
      if ( $(this).val().length > count ) {
        $('#excerpt-count, #acf-field_5c64e5255254a').css('color', '#f00');
      } else {
        $('#excerpt-count,  #acf-field_5c64e5255254a').css('color', '#000');
      }
    });
//    $('#postexcerpt .inside p').html('※ここに入力した内容は一覧画面で <strong>"'+ count +'文字"</strong> までは表示されますが、それ以降は省略表示されます。').css('color', '#888');
  }(jQuery));
</script>


<script>
  (function($) {
    var count = 35;
    $('.acf-field-5c64e6d95254c label').after('<span style=\"color:#888; font-size:12px;\">現在の文字数: <span id=\"excerpt-count2\"></span> / '+ count +'</span>');
    $('#excerpt-count2').text($('#acf-field_5c64e6d95254c').val().length);
    $('#acf-field_5c64e6d95254c').keyup(function() {
      $('#excerpt-count2').text($('#acf-field_5c64e6d95254c').val().length);
      if ( $(this).val().length > count ) {
        $('#excerpt-count2, #acf-field_5c64e6d95254c').css('color', '#f00');
      } else {
        $('#excerpt-count2,  #acf-field_5c64e6d95254c').css('color', '#000');
      }
    });
//    $('#postexcerpt .inside p').html('※ここに入力した内容は一覧画面で <strong>"'+ count +'文字"</strong> までは表示されますが、それ以降は省略表示されます。').css('color', '#888');
  }(jQuery));
</script>


<?php
}
add_action( 'admin_footer-post-new.php', 'excerpt_count' );
add_action( 'admin_footer-post.php', 'excerpt_count' );

add_action( 'admin_footer-edit-tags.php', 'excerpt_count' );
add_action( 'admin_footer-term.php', 'excerpt_count' );

 

 

モバイルメニュー 修正 2回タップ iso

iOS Safariで、リンクメニュー項目が2タップしないとリンク動作しないトラブル対応

という項目が色々あったが

現状では ios で fixed したメニューでそうなっていた

スクロール中は止まるという動作となるので、それも勘違い項目

解決法

念の為

base.lessに

////////iso  fixed タッチ用iso  fixed タッチ用iso  fixed タッチ用iso  fixed タッチ用
@media screen and (min-width: 737px){
    a:hover  {
	color: @link_hover_color;
	text-decoration: underline;
}

////////////////////////////////イメージホバー透明////////////////////////////////

a img:hover{
	opacity:0.7;
filter: alpha(opacity=70);        //ie lt 8
-ms-filter: "alpha(opacity=70)";  //ie 8
-moz-opacity:0.7;                 //FF lt 1.5, Netscape
-khtml-opacity: 0.7;              //Safari 1.x 
}


a:hover img{

	
	opacity:0.7;
filter: alpha(opacity=70);        // ie lt 8 
-ms-filter: "alpha(opacity=70)";  // ie 8 
-moz-opacity:0.7;                 // FF lt 1.5, Netscape 
-khtml-opacity: 0.7;              // Safari 1.x 
}


//透明化させない
a:hover img.no_dhover,#img_box2 img{
opacity:1;
filter: alpha(opacity=100);        // ie lt 8 
-ms-filter: "alpha(opacity=100)";  // ie 8 
-moz-opacity:1;                 // FF lt 1.5, Netscape 
-khtml-opacity: 1;              // Safari 1.x
	}


//透明化少し
a:hover img.no_hover2 {
opacity:0.9;
filter: alpha(opacity=90);        // ie lt 8 
-ms-filter: "alpha(opacity=90)";  // ie 8 
-moz-opacity:0.9;                 // FF lt 1.5, Netscape 
-khtml-opacity: 0.9;              // Safari 1.x 
	}


    }//@media screen 737px 以上はこれ  

////////iso  fixed タッチ用iso  fixed タッチ用iso  fixed タッチ用iso  fixed タッチ用

とし、スマホのホバーをデフォルトを解除

 

モバイルメニューはこれで治らず、

JSを更新したら治った

 

変更点

jsファイル更新

jquery.sidr.min.js

jquery.sidr.dark.css

一応jquery.sidr.light.css jquery.sidr.bare.css

d_mob_menu_css.css は 300pxに変更

 

変更すればいけたが、追加でJSで最初見えないようにした ででてきたから

https://www.j-cool.co.jp/blog/?p=646

.mob_menu{ display:none}
$(document).ready(function() {
      $('#sidr').fadeIn(1000);
  $('.simple-menu').sidr({side: 'right'});
});

参考にならなかった参考下記

https://www.plusdesign.co.jp/blog/?p=1710#spMenu

sidr.jsの使い方(横からスライドするメニュー)

本家 https://www.berriart.com/sidr/

 

business calendar で表示されなくなっった件

大きくミスってしまったのが凡ミスで

<?php echo do_shortcode( '[business-calendar num=2 past=true future=true event=true]' ); ?>

のスペルを間違えてしまってすすめていたこと

php7で推奨されないコードで書かれていたので、買い直したのはまあよかった。 クラスとメソッドが同じ名前はだめというやつ。

Methods with the same name as their class will not be constructors in

こんなエラー

【PHPエラー/解決済】Methods with the same name as their class will not be constructors in


にかいてある感じで

プラグイン開けてみて変更しようと思ったが無理、、

買い直した。

開けてみて、メソッドも増えてるし、まあ 俺には手に負えなかったということで、、。

ここからが問題、、

結果は User Role Editorで
edit_business_calendarという権限を追加したら 治ったということだが、

多分DBのクリーンナップなんかで、消してしまったのだろう、、。
あまりやらないほうがいいな、まえもハマった時ある気がする、。
テンプレでオンオフよくするので、、

サラの worpdressを作成した。実験デバッグにどうぞ。

http://clean-wordpress.com/

macをカタリナ Catalinaに変えた際 2台マック共有での問題

経緯

2012マックをカトリーナにした。タイムマシンでバックアップ

2015マックを2012マックのたいむマシンより復元しコピー

コピーしたものを2015macに使用

 

問題発生

2012マックでは外付けSSDにどのアプリもそのままアクセス

2015マックでは外付けSSDに毎回、フルディスクアクセス もしくは認証をしなければならない。

 

さらにもんだい

2012マックで外付けにおいたファイルをシンボリックして、システムファイルで動かしている

何も問題ない

2015マック

MAMP&MAMP proそれでは動かない

原因

MAMP はhttpd-vhosts.conf がシンボリックではアパー地が動かない

MAMP PROはde.appsolute.mampprohelper.plist がシンボリックでは動かない

 

問題点

トップフラッグなど、

まれにMAMPで動かす場合があるので

その場合、バーチャルホストが共有できない。

2015のを変更したら、コピーしてもっていかないといけない

 

32bit がだめで

シンプルレスがつかえないので

コアラにした。

すべて再設定しなければならない。

 

以上 今の所

 

2015をインストールディスクを利用して、再インストールした。

なぜかというと、2012につなぐと普通にアクセスできるから、、

なので、インストールしたPCで起動する必要がある??

2015につないで、再インストールしてみようとなったわけだ。

ただし、結果は同じ、、

 

ただ、MAMPがつながらないなら(パーミッションエラーで)
PROも同じじゃない? できない??

と思いつなぐとできてる。。。

 

おなじ外付けにおいてあるので、、??リムーバルディスクの問題よりMAMPの問題??とか色々やったが(v-host をちゃんとシンボリックでなく置くとか)できなかったので??

トップフラッグを試しに接続してみると、あら動いてる。。proで、。

まえはhtmlでphpは動かなかったのに、なぜ、、

 

ちなみに、proで遅いのはよくなったぽい。

 

なので、mampは使わず、proのみでやることに、。それで対応 しゅがーのみ動かんが、。

 

これで問題ないかと思ったが、なんとフォントがインストールできていない。

fontexprolerが使えない,,,

 

自分のPCなら何代もOKだたので

購入しました。

外付けにおいても開けた。

いままでの設定で

どうなっているかわからないが、、

サンダーバード プロファイル共有う

しばらくさわってないマックと共有していると,
どうも調子がおかしい、。

どうやらサンダーバードが自動でアップグレードしているためだ。

なので、正常に動くプロファイル.ini等を保存しておく

別PCでバージョンアップしたサンダーバードのプロファイルを利用しようとするとエラーがでるので、新規プロファイルを作成を選択

何もメールアドレス等つくらずに、起動できれば、このサンダーバードについてを見るとわかるが、サンダーバードがバージョンアップするので、再起動。

後に、空のプロファイルに プロファイル&インストールiniが変更されてるので、

元のファイルを上書きして完成

 

タクソノミーd_cate_jirei ポストタイプd_jirei シングルでもwp_list_categories にカレント

//タクソノミーd_cate_jirei ポストタイプd_jirei シングルでもwp_list_categories にカレント
function d_show_current_tram_on_single_d_cate_jirei($output) {
global $post;
if( is_singular( 'd_jirei' )) {
$tarms =wp_get_post_terms($post-&gt;ID, 'd_cate_jirei');
foreach( $tarms as $tarm ) {

$tarmid = $tarm-&gt;term_id;

$dtarm = get_term($tarmid, 'd_cate_jirei');
// Find cat-item-ID in the string
if(preg_match('#cat-item-' . $dtarm-&gt;term_id . '#', $output)) {
$output = str_replace('cat-item-'.$dtarm-&gt;term_id, 'cat-item-'.$dtarm-&gt;term_id . ' current-cat', $output);
}
}

}
return $output;
}

add_filter('wp_list_categories', 'd_show_current_tram_on_single_d_cate_jirei');

wordpress メディア アップロードエラー

wp-config に
define( ‘WP_MEMORY_LIMIT’, ‘256M’ );を追加

メールの履歴を書いとく

最終メール

画像アップ時のプラグインの設定
サーバーの設定で、変更できる部分があったので
それも変更してみました。

少し良くなったようにおもいますので
一度様子見ていただけますか?

よろしくお願いいたします。

それ以前

WPバージョンアップに共ない、
自動サムネイル作成ができない状態になっていました。

作成できるようにあたらしいものに変更しました。
(初めて利用するものなので、今後のアップグレードにどう対応できるかはわかりませんが、なにかありましたら教えてください)

変更にあたって、メディアをアップしてみたらまた、
httpエラー出ていますね、、。

時間をおいたら、アップできました。

WPバージョンアップ後、やはり、サーバーの負荷状態によってできるできないがあるかもしれません。。

アップする際に、自動で10個くらいのサイズに切り抜くようになっていますが、
(色々なサイズを要所要所で使っています)
いくつか減らす事で、改善されるかもしれません。
(設定を解除したら前はエラーが出ないかったです)

あまりにも、アップできないようでしたら、
腰を据えて調査&検証してみますので、
また教えていただけますか?

ご迷惑おかけしますが、何卒よろしくお願いいたします。

ssl https http いいね 引き継ぎ

ヘッダー

	<?php if(is_home()):?>	
<meta property="og:url" content="http://www.yasaka-indus.co.jp" />
<?php endif; ?>
	
<?php include(get_template_directory() . "/5_head/d_3_fb_meta.php"); ?>

htaccess

#BEGIN WordPressより前
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !(Facebot|facebookexternalhit/1.1) [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>

デバッガーでチェック 

https
リダイレクト http

となってればOK

https://knowledge.cpi.ad.jp/other/273/

font icon css で表示 webフォント アイコン

a:after{
font-family: 'fontello';
content: ' \e865';
font-size: 80%;}

コンテンツに入れるものは
file:///Volumes/D-Marking%20Design%20SSD960G%2020150712/my_server/client/2019/swag-lla.com/wp-content/themes/newD/0_d/fontcss/fontello/demo.html

でものshow codes だが
0x は実は バックスラッシュということ
毎度忘れるので注意

d-marking リニューアルメモ2020

Post Type Switcher

で制作事例 d_jirei を変更する jireiに
タクソノミーたちも

 

上記なし

結局wpでポストタイプ タクソノミーを空で準備し、

そこにエクスポートした記事をインポートした。

そうすれば、利用しているタクソノミー(ターム)は全部入る

ただし、問題は、画像IDは変わるということ。

そのため、考えたのが、

ファンクションにコードを追加して、画像URLをカスタムフィールドに収めて、
それを含めてインポートするということ、

まず、1つの画像URLは成功した。

ファンク

//カスタムフィールドの画像IDから別カスタムフィールドにURLを保存
function replace_imgid_imgurl($id) {
    $post = get_post($id);
    // post_typeを判定(post, page, カスタム投稿)
    if( $post-&amp;amp;amp;amp;amp;gt;post_type == 'd_jirei' ){
	    $custom_fields = get_post_custom($id);
	    $jirei_gazou_id = $custom_fields['jirei_gazou'];
		
		if ($jirei_gazou_id):
		
		$jirei_gazou_url = wp_get_attachment_image_src($jirei_gazou_id[0],'full');
		$jirei_gazou_url = $jirei_gazou_url[0];
		
		update_post_meta($id, 'jirei_gazou_url', $jirei_gazou_url);
		endif;

    }
}
add_action( 'wp_insert_post', 'replace_imgid_imgurl' );

インポートした後、逆をやれば、いいのでは。。

https://wemo.tech/tips/2262 らしい

$url = 'https://example.com/wp-content/uploads/2019/img_path.jpg';
$img_id = attachment_url_to_postid( $url );
//カスタムフィールドの画像URLから別カスタムフィールドに画像IDを保存
function replace_imgid_imgurl2($id) {
    $post = get_post($id);
    // post_typeを判定(post, page, カスタム投稿)
    if( $post-&amp;amp;amp;amp;gt;post_type == 'd_jirei' ){
	    $custom_fields = get_post_custom($id);
		
	   $jirei_gazou_url = $custom_fields['jirei_gazou_url']; 
		$jirei_gazou_url = $jirei_gazou_url[0];
		
		if ( $jirei_gazou_url):
		
		$jirei_gazou_id = attachment_url_to_postid( $jirei_gazou_url );
		//$jirei_gazou_id = $jirei_gazou_url[0];
		
		update_post_meta($id, 'jirei_gazou', $jirei_gazou_id);
		endif;

    }
}
add_action( 'wp_insert_post', 'replace_imgid_imgurl2' );

一応これでできたわ。

あとはループフィールド
ギャラリーでできるか

 

 

ループフィールドはjirei_gazou_sabsで

jirei_gazou_sabが配列で入ってるだろう

jirei_gazou_sabsはエクスポートした記事にはないがな

 

 

これもできた。

 

////1.メイン画像を旧サイトから書き出す
//画像IDから別カスタムフィールドにURLを保存【カスタムフィールド】
//function replace_imgid_imgurl($id) {
//    $post = get_post($id);
//    // post_typeを判定(post, page, カスタム投稿)
//    if( $post-&amp;amp;gt;post_type == 'd_jirei' or  $post-&amp;amp;gt;post_type == 'jirei' ){
//	    $custom_fields = get_post_custom($id);
//	    $jirei_gazou_id = $custom_fields['jirei_gazou'];
//		
//		if ($jirei_gazou_id):
//		
//		$jirei_gazou_url = wp_get_attachment_image_src($jirei_gazou_id[0],'full');
//		$jirei_gazou_url = $jirei_gazou_url[0];
//		
//		update_post_meta($id, 'jirei_gazou_url', $jirei_gazou_url);
//		endif;
//
//    }
//}
//add_action( 'wp_insert_post', 'replace_imgid_imgurl' );

//1-2.メイン画像を新サイトに戻す
//画像URLから別カスタムフィールドに画像IDを保存【カスタムフィールド】
//※URLはデコードされたちゃんとした日本語でないと出ない。
//function replace_imgid_imgurl2($id) {
//    $post = get_post($id);
//    // post_typeを判定(post, page, カスタム投稿)
//    if( $post-&amp;amp;gt;post_type == 'd_jirei' ){
//	    $custom_fields = get_post_custom($id);
//		
//	   $jirei_gazou_url = $custom_fields['jirei_gazou_url']; 
//		$jirei_gazou_url = $jirei_gazou_url[0];
//		
//		if ( $jirei_gazou_url):
//		
//		$jirei_gazou_id = attachment_url_to_postid( $jirei_gazou_url );
//		//$jirei_gazou_id = $jirei_gazou_url[0];
//		
//		update_post_meta($id, 'jirei_gazou', $jirei_gazou_id);
//		endif;
//
//    }
//}
//add_action( 'wp_insert_post', 'replace_imgid_imgurl2' );


//2.サブ画像を旧サイトから書き出す
//ループフィールドの画像IDからカスタムフィールドにURLを保存【カスタムフィールド】
//function replace_imgid_imgurl3($id) {
//    $post = get_post($id);
//    // post_typeを判定(post, page, カスタム投稿)
//    if( $post-&amp;amp;gt;post_type == 'd_jirei' ){
//		
//		$jirei_gazou_ids ='';//定義
//
//	    $custom_fields = get_post_custom($id);
//		$fields = $custom_fields['jirei_gazou_sab']; 
//		if($fields){
//		foreach ($fields as $field) :
//		$img_url  = wp_get_attachment_image_src($field,'full'); 
//		$img_url = $img_url[0];
//		$jirei_gazou_urls[] = $img_url;
//		
//		endforeach;
//			}
////		
//	if ($jirei_gazou_urls):
//		$jirei_gazou_urls = implode(',', $jirei_gazou_urls);
//		update_post_meta($id, 'sub_img_urls', $jirei_gazou_urls);
//		endif;
//		
//    }
//}
//add_action( 'wp_insert_post', 'replace_imgid_imgurl3' );

// 追記..上記元がギャラリーの場合
function replace_imgid_imgurl32($id) {
    $post = get_post($id);
    // post_typeを判定(post, page, カスタム投稿)
    if( $post-&amp;amp;gt;post_type == 'd_jirei' ){
		
		$jirei_gazou_ids ='';//定義

	    $custom_fields = get_post_custom($id);
		//$fields = $custom_fields['jirei_gazou_sab']; のかわりに
		$fields = get_field('jirei_gazou_sabs');//これがつかえるようだ
		if($fields){
		foreach ($fields as $field) :
		$img_url  = wp_get_attachment_image_src($field,'full'); 
		$img_url = $img_url[0];
		$jirei_gazou_urls[] = $img_url;
		
		endforeach;
			}
//		
	if ($jirei_gazou_urls):
		$jirei_gazou_urls = implode(',', $jirei_gazou_urls);
		update_post_meta($id, 'sub_img_urls', $jirei_gazou_urls);
		endif;
		
    }
}
add_action( 'wp_insert_post', 'replace_imgid_imgurl32' );



//2-1.サブ画像を新サイトに戻す
//複数の画像URLからギャラリーカスタムフィールドにIDを保存【カスタムフィールド】
//※URLはデコードされたちゃんとした日本語でないと出ない。
//function replace_imgid_imgurl4($id) {
//    $post = get_post($id);
//    // post_typeを判定(post, page, カスタム投稿)
//    if( $post-&amp;amp;gt;post_type == 'd_jirei' ){
//        $sub_img_ids ='';
//		$custom_fields = get_post_custom($id);
//		$fields = $custom_fields['sub_img_urls']; 
//		if($fields){ 
//			$fields = explode(',', $fields[0]);
//			foreach ($fields as $field) :
//			
//	$sub_img_id = attachment_url_to_postid( $field );
//	$sub_img_ids[] = $sub_img_id;
//		endforeach;
//			}		
//		update_post_meta($id, 'jirei_gazou_sabs', $sub_img_ids);
//    }
//}
//add_action( 'wp_insert_post', 'replace_imgid_imgurl4' );

あと、問題は げんざいの記事を更新することだが、
クイック編集ではどうもだめなようだ。

なので、記事いっこずつ更新するしかないようだ。

タクソノミーを作って、全てにクイック編集で、タームをつけて更新したが、それでも変わらなかった。

手作業か、、 まあ まだいいか いっこずつアサインさせるよりは。

あとは、

メディアファイルを同じ構造のままアップさせる。

ちょっとまった。
URLにドメインの入れ替えの細工をしなければ、ならない。。
d-marking.jp/~~

d-marking1.jp/~~にしなければな。。

そのコードの追加

//1.メイン画像を旧サイトから書き出す
//画像IDから別カスタムフィールドにURLを保存【カスタムフィールド】
function replace_imgid_imgurl($id) {
    $post = get_post($id);
	
		$home_url = home_url(); //ホームのURLを取得する	
		$new_url = 'http://www.d-marking1.jp'; //引っ越し先のホームのURLを入れる	
	
    // post_typeを判定(post, page, カスタム投稿)
    if( $post-&amp;amp;gt;post_type == 'd_jirei' or  $post-&amp;amp;gt;post_type == 'jirei' ){
	    $custom_fields = get_post_custom($id);
	    $jirei_gazou_id = $custom_fields['jirei_gazou'];
		
		 $sma_gazou_id = $custom_fields['suma_img'];
		
		if ($jirei_gazou_id):
		
		$jirei_gazou_url = wp_get_attachment_image_src($jirei_gazou_id[0],'full');
		$jirei_gazou_url = $jirei_gazou_url[0];
		
		$jirei_gazou_url = str_replace( $home_url , $new_url, $jirei_gazou_url ); //ホームのURL
		
		update_post_meta($id, 'jirei_gazou_url', $jirei_gazou_url);
		endif;
		
		
		if ($sma_gazou_id):
		
		$sma_gazou_url = wp_get_attachment_image_src($sma_gazou_id[0],'full');
		$sma_gazou_url = $sma_gazou_url[0];
		
		$sma_gazou_url = str_replace( $home_url , $new_url, $sma_gazou_url ); //ホームのURL
		
		update_post_meta($id, 'suma_img_url', $sma_gazou_url);
		endif;

    }
}
add_action( 'wp_insert_post', 'replace_imgid_imgurl' );


//2.ループフィールドの画像IDからカスタムフィールドにURLを保存【カスタムフィールド】
function replace_imgid_imgurl3($id) {
	
			$home_url = home_url(); //ホームのURLを取得する	
		$new_url = 'http://www.d-marking1.jp'; //引っ越し先のホームのURLを入れる
	
    $post = get_post($id);
    // post_typeを判定(post, page, カスタム投稿)
    if( $post-&amp;amp;gt;post_type == 'd_jirei' or  $post-&amp;amp;gt;post_type == 'jirei'){
		
		$jirei_gazou_ids ='';//定義

	    $custom_fields = get_post_custom($id);
		$fields = $custom_fields['jirei_gazou_sab']; 
		if($fields){
		foreach ($fields as $field) :
		$img_url  = wp_get_attachment_image_src($field,'full'); 
		$img_url = $img_url[0];
		
		$img_url = str_replace( $home_url , $new_url, $img_url ); //ホームのURL
			
		$jirei_gazou_urls[] = $img_url;
		
		endforeach;
			}
//		
	if ($jirei_gazou_urls):
		$jirei_gazou_urls = implode(',', $jirei_gazou_urls);
		update_post_meta($id, 'sub_img_urls', $jirei_gazou_urls);
		endif;
		
    }
}
add_action( 'wp_insert_post', 'replace_imgid_imgurl3' );

さあ本番 だ、

新旧サイトに、

jirei_gazou_url
sub_img_urls
suma_img_url

を作成、

先は

jirei_gazou
suma_img
jirei_gazou_sabs

だ。

その前にメディアライブラリを移行してみよう

 

メディアライブラリ移行 これもやばかったし、いつまで使えるかわからない方法。

Media from FTPを使う

Media from FTP

これまず解説。

日本語ファイル名に対応していない。
オリジナルファイルが削除されます。 の項目

  • このプラグインは以下の場合にファイルを削除します。
  1. ファイル名にスペースが含まれている場合。スペースを「-」に変換してオリジナルファイルを削除します。image example.jpg -> image-example.jpg
  2. ファイル名にマルチバイト文字が含まれている場合。MD5変換を行いオリジナルファイルを削除します。image例.jpg -> 2edd9ad56212ce13a39f25b429b09012.jpg
  3. 「アップロードしたファイルを年月ベースのフォルダに整理」の項目にチェックが入っていると、ファイルを年月ベースのフォルダにコピーし、オリジナルファイルを削除します。wp-content/uploads/sites/2/image-example.jpg -> wp-content/uploads/sites/2/2015/09/image-example.jpg

* ファイルをコピーした後に、サムネイルを作成しデータベースに登録します。

日本語URLはサニタイズされて、文字が置き換わってしまう。
よく調べると MD5変換は逆変換不可能とのことで、
URLを予測することができない。

そこでプラグインを開けると、

inc/class-mediafromftp.php

に/* sanitize */の項目がある。

/* sanitize */
$orgfilename = $filename;
$filename = $currentdir . '/' . sanitize_file_name( wp_basename( $filename ) );
rename( $orgfilename, $filename );

// if ( function_exists( 'mb_check_encoding' ) ) {
// if ( ! mb_check_encoding( $filename, 'ASCII' ) ) {
// $currentfile = wp_basename( $filename, $suffix_attach_file );
// $oldfilename = $currentdir . '/' . $currentfile . $suffix_attach_file;
// $filename = $currentdir . '/' . md5( $currentfile ) . $suffix_attach_file;
// $copy_file_org2 = $this-&gt;mb_encode_multibyte( $oldfilename, $character_code );
// $copy_file_new2 = $this-&gt;mb_encode_multibyte( $filename, $character_code );
// $err_copy = @copy( $copy_file_org2, $copy_file_new2 );
// if ( ! $err_copy ) {
// if ( ! empty( $copy_file_new1 ) ) {
// $copy_file_org2 = $copy_file_org1;
// unlink( $copy_file_new1 );
// }
// return array( -1, $this-&gt;mb_utf8( $copy_file_org2, $character_code ), $this-&gt;mb_utf8( $currentdir, $character_code ), null );
// }
// }
// }

コメントアウトして、アップすると、なんとか、そのままのファイル名でアップできた。

■、使い方

どうやら、過去のサイトのメディアファイルuplodesを

そのままアップできる

が、毎度フォルダ別にほるのが面倒なため、

新サイトのuplodes/back と名前を変えて直接アップする。

そこのbackをプラグインで入れるわけだが、

設定がある。

アップロードしたファイルを年月ベースのフォルダーに整理はチェックをはずす。

固定された日時で更新 で、失敗してもわかりやすい、日付にしておく。
今回は最も古い日時

この設定で、uplodes/back内のフォルダがそのディレクトリのままアップされて登録される。

ファイル名にスペースが含まれている場合はURLがかわりそうだ。

プラグイン内のサニタイズ項目を無理やりコメントアウトしたので、なんとかアップできる。

そして、また登録コードを細工しなければならない。

URLにuplodes/backを追加しなければならないのだ。

そこでコードを編集

		$back_url = 'http://www.d-marking.jp'; //引っ越し前のホームのURLを入れる	
		$home_url = home_url(); //ホームのURLを取得する	

	$jirei_gazou_url = str_replace( $back_url , $home_url,  $jirei_gazou_url ); //ホームのURLを変更
		$jirei_gazou_url = str_replace( 'uploads/' , 'uploads/back/', $jirei_gazou_url ); //アップロードフォルダのURLを変更 例 http://www.d-marking1.jp/wp-content/uploads/2020 を http://www.d-marking1.jp/wp-content/uploads/back/2020 に

を追記

完成コードは最後にのせよう、また変わるといけないので。

 

と思ったが、結局、デザイン業のことを思うと、画像検索から入ってくる事を思うと、画像URLの変更ってどうなの?
と思い、

フォルダをドロップするだけで、同じフォルダ内にコピーできるので、
その手法で、

まず、念の為、新サイトのuplodesをコピーして圧縮
本当はDBもバックしなきゃね。ここ忘れた。。失敗したら更新がきえてまう。。

旧uplodesを新uplodes内にコピー
パスファインダーでは
2020 2019などを全部掘り込んだら、上書きしないで結合でそのようになった。

後、Media from FTPで読み込ます。

もちろんURLは旧サイトのまま(今回の予定はあくまで、ローカルの別ワードプレスに入れて、後に同じドメインでリニューアルするので、、)で公開できるよてい。

Media from FTP

使い方注意

元のメディアファイルがからのときはスムーズに登録できたが(すべてのファイルを一気に)
1000件を下手に 700件に分けると、
300件を登録する際、すでに700件追加されているので、検索が重くなり、全体だと表示されない。。

2020とか、多い年は2015/10とかでなければ検索結果に出ないので、注意

 

やり方、

表示件数できるのなら、表示件数は1300件あるなら1500件とかにして一気にやったほうがよい。(サムネイル等作成されたあとはその分検索がおもくなるのできつくなる)

フォルダが表示できないとき(重くて)

アップロード内などに別の退避フォルダを作成して、読み込ます。

読み込めたら、後に、入れ替え。

がスムーズかも

おかしな点

このファイルのところで、とまった?
元からファイル名が-1 ついている。
さらにこれは新さいとにあったファイル

多分最初はついていないやつをアップして、後に、何個もあっぷして、ついていないのをけしたのか??

これをするーしたら登録再開された、、。不明

アップする前の状態をしらべてみると、

最初からこれが入っているが、これはゴミのようだ、。
実際にアップされているのは、
これでなく、
-5というどこかに保存されているファイルだった。

ともかく、 すでにあるファイルのためのエラーであったので、
引っ越し元には関係ないかも

2015の7月のフォルダに3000以上に画像が。。。表示できない。。

 

 

 

旧d-markingからurlを保存する最初のコードメモ
//1.メイン画像を旧サイトから書き出す
//画像IDから別カスタムフィールドにURLを保存【カスタムフィールド】
function replace_imgid_imgurl($id) {
    $post = get_post($id);
	
		$home_url = home_url(); //ホームのURLを取得する	
		$new_url = 'http://www.d-marking1.jp'; //引っ越し先のホームのURLを入れる	
	
    // post_typeを判定(post, page, カスタム投稿)
    if( $post->post_type == 'd_jirei' or  $post->post_type == 'jirei' ){
	    $custom_fields = get_post_custom($id);
	    $jirei_gazou_id = $custom_fields['jirei_gazou'];
		
		 $sma_gazou_id = $custom_fields['suma_img'];
		
		if ($jirei_gazou_id):
		
		$jirei_gazou_url = wp_get_attachment_image_src($jirei_gazou_id[0],'full');
		$jirei_gazou_url = $jirei_gazou_url[0];
		
		$jirei_gazou_url = str_replace( $home_url , $new_url, $jirei_gazou_url ); //ホームのURL
		
		update_post_meta($id, 'jirei_gazou_url', $jirei_gazou_url);
		endif;
		
		
		if ($sma_gazou_id):
		
		$sma_gazou_url = wp_get_attachment_image_src($sma_gazou_id[0],'full');
		$sma_gazou_url = $sma_gazou_url[0];
		
		$sma_gazou_url = str_replace( $home_url , $new_url, $sma_gazou_url ); //ホームのURL
		
		update_post_meta($id, 'suma_img_url', $sma_gazou_url);
		endif;

    }
}
add_action( 'wp_insert_post', 'replace_imgid_imgurl' );


//2.ループフィールドの画像IDからカスタムフィールドにURLを保存【カスタムフィールド】
function replace_imgid_imgurl3($id) {
	
			$home_url = home_url(); //ホームのURLを取得する	
		$new_url = 'http://www.d-marking1.jp'; //引っ越し先のホームのURLを入れる
	
    $post = get_post($id);
    // post_typeを判定(post, page, カスタム投稿)
    if( $post->post_type == 'd_jirei' or  $post->post_type == 'jirei'){
		
		$jirei_gazou_ids ='';//定義

	    $custom_fields = get_post_custom($id);
		$fields = $custom_fields['jirei_gazou_sab']; 
		if($fields){
		foreach ($fields as $field) :
		$img_url  = wp_get_attachment_image_src($field,'full'); 
		$img_url = $img_url[0];
		
		$img_url = str_replace( $home_url , $new_url, $img_url ); //ホームのURL
			
		$jirei_gazou_urls[] = $img_url;
		
		endforeach;
			}
//		
	if ($jirei_gazou_urls):
		$jirei_gazou_urls = implode(',', $jirei_gazou_urls);
		update_post_meta($id, 'sub_img_urls', $jirei_gazou_urls);
		endif;
		
    }
}
add_action( 'wp_insert_post', 'replace_imgid_imgurl3' );

これはやめて、通常のアドレスを書き出すようにする。

ssdの調子がおかしい、まとめ

まず、今回、自宅macが遅くなっておかしいと思った。

そこで、疑ったのが、SSDがおかしい、ケースがおかしい、ケーブルがおかしい。

ケースとケーブルに関しては、他のと差し替えたりして、変化なし。

こんな状態(10.14.6 で フォーマットはapfsになっていたはず)

macで復元するつもりでフォーマットしたが、かわらない。

 

結局、WIN7でつないで、

TxBENCH」というフリーのツールでSecure Eraseしたら、なにもない状態で、OS拡張ジャーナリングでフォーマットしたら早くなった。

Macの外付けSSDが遅くなったのでSecure Eraseしたら速くなった件

 

そこでバックアップを復元すると、

apfsになってしまったのと、遅くなった 特に4k

使用に耐えられそうだが、う〜ん。。

ここから迷宮

apfsでないと、10.14は入れられないことを知らずに、フォーマットのせい?

または、このosデータがわるい?となって、。

だって、もう一個の柴田マックのssdは早いんだもの10.14.4でosジャーナリングで

これでしょ。

なんで、これをコピって入れたかったんだが、

どうやら、本当は旧フォーマットでは10.14は入らないらしく、

コピーしていれたが、動かず。。。

そこで、念の為、空っぽを速度テストしてみると消したり色々してたからか

また少し遅くなってる。。

2回やったけど同じ感じ

またwinにつないで、更地にした

するとこれ

でねんのため、apfsでフォーマットしてみると、

なんと、、。

おっせー。

これと変わらんやんあんま。。

apfsでフォーマットすると4kが遅いんかな〜

選択の余地

1.またバックアップ復元で利用

2.クリーンインストールして、データを以降してみたらどうか?

手順

しばらく柴田SSDをこっちで利用する。

空のSSDにosをインストールできるか??

 

2をやってみた。

https://satoshisgarage.tech/?p=5731 これだめだった

https://support.apple.com/ja-jp/HT204904 これでできた

かなり時間かかる

インストできてから タイムマシーンのHDDから データ復元するのがかなりかかる。

 

できたけど結局図ってみると

4kおせー

 

あとは 柴田macをちゃんとしたフォーマットにかえて 10.14.6 にしたい。

office 2019は ヤフオクで安くうってるな。

あと対応できないのってあるかな?

最新版にしようかな

 

php7.2 表示がおかしくなる件 原因はphp の省略タグだった

ファンクションphpで読み込ませていたコードが、ボディーに出てしまう。

色々やった結果、<? で動いたいたものが 動かなくなっていた。

調べると php省略タグということで、

それをオンにすればそれでも良かったのかも

PHP では、短い形式の開始タグ <? および ?> も使えます (しかしこれはおすすめしません。というのも、この形式のタグは php.ini でshort_open_tag を有効にするか –enable-short-tags オプションつきで PHP を configure した場合でないと使えないからです)。

 

 

https://www.google.com/search?sxsrf=ALeKk00Yzxts5RS9u6w9nnCscgeAL5MjKw%3A1582183661314&ei=7TROXuLpEqaXr7wP6pOOuA4&q=php+%E9%96%8B%E5%A7%8B%E3%82%BF%E3%82%B0+%E7%9C%81%E7%95%A5&oq=php%E3%80%80%E9%96%8B%E5%A7%8B%E3%83%80%E3%82%B0%E3%80%80&gs_l=psy-ab.1.0.0i13j0i13i30l3.15700.18984..20322…0.0..0.120.1464.9j6……0….1..gws-wiz…….35i39j0i131j0j0i67j0i4j0i4i30.V3x-PU4U9lk

 

 

 

disp key のはじまりが

<?

となってたのがいかん

sting welcart Image Uploader for Welcart 画像アッププラグインバグメモ

Smart Custom Fields で日付等つけてるが このやつで カスタムフィールドつけるとバグる ポスト外せばOK

スイート は できそうだが デイトピッカーがダサい
でもかえるならこれで対応できるか

https://web.contempo.jp/weblog/tips/post-636

Welcartの商品登録画面を劇的に楽にするプラグイン「Image Uploader for Welcart」

また、レビュープラグインReviewPress
もオンにするだけで同じく

これは別のプラグで対応するしかないか
また時間あったらだな

 

レビュー別で

https://decoru.co.jp/post-10037/

Stars Rating