0

ワードプレス初心者なのですが、どなたか教えていただきたいです。いくつかのフックが必要です。これは、いくつかの文字数 (300 としましょう) の後に投稿を分割し、各分割の後にテキストを追加します。フィルターフックを作成しましたが、アクションフックの作成方法がわかりません-分割されたテキストを書き込むには保存、公開、または編集アクションの前に、データベースへのテキスト。このコードは機能しますが、データベースに保存するにはどうすればよいですか?

function inject_ad_text_after_n_chars($content) {

  $enable_length = 30;
  global $_POST;
  if (is_single() && strlen($content) > $enable_length) {

$before_content = substr($content, 0, 30);
$before_content2 = substr($content, 30, 30);
$before_content3 = substr($content, 60, 30);
$before_content4 = substr($content, 90, 30);
$texta = '00000000000000000000';  

                 return $before_content . $texta . $before_content2 . $texta . $before_content3 . $texta . $before_content4;

}
  else {
    return $content;
  }
}

add_filter('the_content', 'inject_ad_text_after_n_chars');
4

1 に答える 1

3

wp_insert_post_dataフィルターを探しています。この関数では、データを挿入する前にフィルター処理するための to パラメーターが提供されます。次のように使用できます-

add_filter('wp_insert_post_data', 'mycustom_data_filter', 10, 2);
function mycustom_data_filter($filtered_data, $raw_data){
    // do something with the data, ex

    // For multiple occurence
    $chunks = str_split($filtered_data['post_content'], 300);
    $new_content = join('BREAK HERE', $chunks);

    // For single occurence
    $first_content = substr($filtered_data['post_content'], 0, 300);
    $rest_content = substr($filtered_data['post_content'], 300);
    $new_content = $first_content . 'BREAK HERE' . $rest_content;

    // put into the data
    $filtered_data['post_content'] = $new_content;

    return $filtered_data;
}
于 2013-12-21T09:12:11.960 に答える