0

'supports' => array('title')カスタム投稿タイプを作成するときに使用する ISBN 番号と YouTube URL の 2 つの (テキスト) フィールドのみを持つカスタム投稿タイプがあります。

問題は、タイトルが必要ないことです。なので投稿を保存するとタイトルがISBN番号になるようにしました。

  add_filter('wp_insert_post_data', array($this, 'change_title'), 99, 2);

  function change_title($data, $postarr) {
    if ($data['post_type'] == 'book_video') {
      // If it is our form has not been submitted, so we dont want to do anything
      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
        return $data;

      // Verify this came from the our screen and with proper authorization because save_post can be triggered at other times
      if (!isset($_POST['wp_meta_box_nonce']))
        return $data;

      // Combine address with term
      $title = $_POST['_bv_isbn'];
      $data['post_title'] = $title;
    }
    return $data;
  }

これは機能しますが、問題は、タイトルを事前に入力せずに投稿を保存すると (まったく)、投稿が保存されず、タイトル変更機能が呼び出されず、すべてのフィールドがリセットされることです。

タイトルにデフォルト値を設定して非表示にすることはできますか?

4

1 に答える 1

1

カスタム投稿タイプを登録すると、タイトルなど、サポート対象を設定できます。

を呼び出すときはregister_post_type()、別のエントリを$argscalledに追加supportsし、その値を配列に設定します。次に、投稿タイプがサポートする要素のリストを渡すことができます。デフォルトは「タイトル」と「エディター」ですが、選択できるオプションは多数あります。

例えば:

<?php 
  register_post_type( 
    "myCustomPostType", 
    array(
      'supports' : array(
        'editor',
        'author',
        'custom-fields'
      )
    )
  )
?>

見逃す限り、title投稿ごとに定義する必要はありません。

詳細については、次のページを参照してください: http://codex.wordpress.org/Function_Reference/register_post_type#Arguments

于 2013-05-30T09:06:58.993 に答える