質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Q&A

解決済

1回答

1333閲覧

WPでカスタムフィールドに保存した情報が、Search Regexを使うと全部消えてしまった

j123

総合スコア15

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

0グッド

0クリップ

投稿2021/06/21 10:26

編集2021/06/22 06:47

「Search Regex」からカスタムフィールドの情報を除外(消えないように)したい

先日WordPressの投稿の管理画面にオリジナルのカスタムフィールドを作成し(functions.php)、
投稿に反映させたのですが、
プラグイン「Search Regex」で投稿内の情報を置き換えたところ、
そのページのカスタムフィールドに入力した情報が全て消えてしまいました。。

行った置換の内容は

width="546" height="800" class="aligncenter

から

width="600" height="auto" class="taC

へ全て変更という置換だったかと思います。
(数値等はうろ覚えですが、だいたいこのような内容でした)

ですので、

1.カスタムフィールドの情報が消えないようにしたい

今後「Search Regex」を使わないようにすればよいのでしょうが、
後々のことも考えると「Search Regex」も使えるようにはしておきたいと思っています。

ですので、「Search Regex」を使用した時、
オリジナルのカスタムフィールドに入力した値が消えないようにする方法を教えていただけないでしょうか?

以下、カスタムフィールドを作成した記述の一部(項目が多いため一項目のみ)です。

php

1//↓↓↓↓↓20210619 各ショップのURLのカスタムフィールド追加↓↓↓↓↓ 2// 固定カスタムフィールドボックス 3function add_url_fields() { 4 add_meta_box( 'url_setting', '各ショップのURL情報', 'insert_url_fields', 'post', 'normal'); 5} 6add_action('admin_menu', 'add_url_fields'); 7 8// カスタムフィールドの入力エリア 9function insert_url_fields() { 10 global $post; 11 echo 'Amazon: <input type="text" name="amazon_url" value="'.get_post_meta($post->ID, 'amazon_url', true).'" size="100%"/><br>';//Amazon 12} 13 14// カスタムフィールドの値を保存 15function save_url_fields( $post_id ) { 16 //Amazon 17 if(!empty($_POST['amazon_url'])){ 18 update_post_meta($post_id, 'amazon_url', $_POST['amazon_url'] ); 19 }else{ 20 delete_post_meta($post_id, 'amazon_url'); 21 } 22} 23add_action('save_post', 'save_url_fields'); 24 25// ショートコード作成 26//Amazon 27function amazon_url_shortcode(){ 28 $urlAmazon = get_post_meta(get_the_ID(), 'amazon_url', true); 29 if (!empty($urlAmazon)){ 30 return '<a href="' . $urlAmazon . '" target="_blank" rel="nofollow noopener" class="BTN-3S AmazonBTN">Amazon で購入する <span class="arrow01">>>></span></a>'; 31 } 32} 33add_shortcode( 'amazonURL', 'amazon_url_shortcode' );

###2.「Search Regex」で置き換える前の状態にしたい
できれば消えてしまった情報を元の状態に戻したいですが、これは可能なのでしょうか?

10ページほどですが、カスタムフィールドへ入力した情報が結構な量なので、
また1からやり直すと数時間かかってしまいます。

ですので、可能であれば元の状態にする方法をも教えていただければ幸いです。

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

補足情報

WordPress バージョン 5.7.2
Search Regex バージョン 2.4.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2021/06/21 23:51

> プラグイン「Search Regex」で投稿内の情報を置き換えたところ、 > そのページのカスタムフィールドに入力した情報が全て消えてしまいました。。 試してみた感じでは再現しないのですが、どのような「内容」を置換する条件で実行したのでしょうか? 再現する手順を質問に追記していただくことは可能でしょうか?
j123

2021/06/22 06:48 編集

CHERRYさん わざわざ試してくださってありがとうございます! 内容は全てもう直してしまったのでうろ覚えなのですが、 「width="546" height="800" class="aligncenter」を 「width="600" height="auto" class="taC」に全て変更 という置換を実行したかと思います。 今書いていてダブルクォーテーションが入っていたからかな? (最後のダブルクォーテーションがなかったからかも?) とも思ったのですが、、、 少々今試すの怖くてやっていません。。 とりいそぎ。 質問にも追記しますね。 よろしくお願いいたします。
guest

回答1

0

自己解決

まだ不確かですが、おそらくカスタムフィールドの値を保存する記述部分で、

PHP

1// カスタムフィールドの値を保存 2function save_url_fields( $post_id ) { 3 //Amazon 4 if(!empty($_POST['amazon_url'])){ 5 update_post_meta($post_id, 'amazon_url', $_POST['amazon_url'] ); 6 }else{ 7 delete_post_meta($post_id, 'amazon_url'); 8 } 9} 10add_action('save_post', 'save_url_fields'); 11

!empty と delete_post_meta
の部分が問題だったのかな?と思っています。

!emptyをissetに変え、delete_post_metaを削除したところ、
Search Regexでも問題なく置換でき、今のところトラブルも見つかっていません。

ですが問題が起きなかったという方もおられますので、
これで何かお分かりになる方おられましたら、
ご意見いただければ幸いです。

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

投稿2021/06/29 05:46

j123

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

j123

2021/07/02 05:38

しばらく色々な作業をしているのですが、 トラブルは解消されているようですので、 解決とします!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問