WordPress API Postで特定データの時403エラーが出る対処法

WordPressAPIPostで特定データの時エラーが出る対処法
目次

【事象】WordPress API Post特定データの時だけ403

WordPress APIでブログ投稿を行うとき、 特定データの場合の時のみ、何回投稿を試みても403エラーが発生しまいます。他のデータの場合には投稿に成功するので、ポストしているデータのどこかに問題があると考えられます。

WordPress側のログに残らない

この問題を解消するときに厄介だったのが、WordPress側のログに何も残っていないと言うことです。 プラグインを入れてWordPressのAPIログを見れるようにしているのですが、 同時に使用している他の リクエストはログが残りますが、投稿のポストだけ録画ありません。もちろん403のステータスはどこにも残っていません。

とても便利なログプラグインですが、正常に受け入れられたログしか見れないようですね。

【結論】 使用中のテーマ「Cocoon」のショートコードとの相性が悪かった模様

postmanを使い様々な部分のデータの値を変えて試したところ、 原因となっていたのは、本文中に入れていたショートコードの中身のようでした。 具体的には、商品リンクを表示するショートコードの値に半角の「(」もしくは「)」を使用していた 場合に限り、403エラーが出ていたようでした。

[rakuten search='mini (ミニ)' kw='mini (ミニ)' amazon=1 rakuten=1 yahoo=1]

他にも類似の、半角記号をショートコードの中の値に入れた際、同じ403エラーが出たこともあるので、ショートコードを使用する際には値に半角の記号を入れる事は避けたほうがよさそうです。

【解決策】 全角に置き換えられる記号は置き換える

[rakuten search='mini (ミニ)' kw='mini (ミニ)' amazon=1 rakuten=1 yahoo=1]

403エラーを避ける解決策としては、全角に置き換えられる記号は全角に置き換え、置き換えられない記号はショートコードの中での使用を避けることになります。

ショートコードの値は複雑にしないこと

今回この問題を解決する際に、私は外部サイトのリンクなども入れていたので当初そちらが原因かと思っていました。 理由はどうしてだか分かりませんが、この外部サイトのリンクを抜くとポストに成功することがあったからです。しかしそれでも稼働が安定せず、どのような条件か分かりませんがある条件に合致してしまいポストエラーになることがその後も続きました。 しかし最終的に、このショートコードの中の値に気をつけるようになってからポストのエラーが出なくなりました。従って原因はショートコートの値だったと現在自分の中で結論づけています。

WordPressのAPIは、失敗した際にログが詳細に出ず、どこが問題だったのかわからないことがあります。その時にはどうしてもいろいろ値や条件を変えて成功するまで試してみると言う形での解決になりますが、丁寧に確認することで課題は解決できます。 私はウェブ検索した際に同様の問題をなかなか見つかる見つけることができなかったので、今回記事にしました。どなたかの助けになれば幸いです。

WordPress関連の記事はこちら

WordPressAPIPostで特定データの時エラーが出る対処法

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

ピープル大学(UoPeople)でコンピューターサイエンスを学んでいます。趣味はプログラミング。

コメント

コメントする

目次