1

wordpress 用の単純なメタボックスをコーディングしていて、データを保存するときに少し問題があります。

メタ ボックスは「記事の作成」ページにあります。ページには 2 つのテキスト フィールドがあります。これらは、投稿が保存されるときに、投稿メタとして保存されます。

保存中に、フィールドが入力されているかどうかを確認します。空の場合は、投稿のタイトルを取得して、必要なデータを抽出します。アイデアは、最初の「-」の前にあるすべてのものを取ることです。マイナス記号がない場合は、タイトル全体をカスタム フィールドに保存する必要があります。現在、これはタイトルで「-」を見つけることができず (1 つあるにもかかわらず)、毎回タイトル全体を返します。

function get_from_title($title) {
  $pos = strpos($title, '-');

  if ($pos) {
    return trim(substr($title, $pos));
  }
  else {
    $pos = strpos($title, '–'); //added this since two different signs could be used

    if ($pos) {
      return trim(substr($title, $pos));
    }
    else {
      return $title;
    }
  }
}

get_from_title を呼び出している関数は get_the_title( $post_id ) を介してタイトルを取得しており、これは問題なく機能します。

ワードプレスはタイトルを何らかの形でエンコードしていますか?strpos がマイナス記号を見つけられないのはなぜですか? 代わりに何を探すべきですか?

ありがとう

4

1 に答える 1

3

WordPressフォーラムでこのトピックについて始めたスレッドに返信しました。あなたはそこにあなたの答えを見つけることができます。

あるいは、これが私が言ったことです。:)

そうそう。これはトリッキーなものです。では、はっきりと見えるのに、なぜstrposはタイトルにハイフンを見つけられないのでしょうか。ないから。ヘヘ。

ここでWordPressが行っているのは、ハイフン(マイナス記号)をen-dashに変換することです。

これはあなたにやっかいなスクワットを与えるでしょう: $pos = strpos( $title, '-' );

あなたはこれを求めている: $pos = strpos( $title, '–' );

状況がどうなったか教えてください。:)

于 2012-09-05T21:10:31.913 に答える