私はタイトルや編集者のいないカスタム投稿タイプを作成し、カスタム分類法、カスタムフィールド、添付ファイルを使って投稿を作成しました。私の役職は、カスタム分類法とカスタムフィールド(または他に設定されていない場合は「ID#」)から生成されます。ここにタイトルコードがあります(おそらく、多少の磨きをかけることができます)。
function custom_post_type_title ( $post_id ) {
global $wpdb;
if ( get_post_type( $post_id ) == 'cars' ) {
$autos = wp_get_object_terms($post_id, 'brand');
$brand= '';
$model= '';
foreach ( $autos as $auto ) {
if ( $auto->parent == 0) {
$brand = ' '.$auto->name;
} else {
$model .= ' '.$auto->name;
}
}
$engine = get_post_meta($post_id, 'Engine', true);
if ($engine != '') { $engine = ', '.$engine.'l'; }
$title = $brand.$model.$engine;
if ($title == '') { $title = 'ID '.$post_id; }
$slug = sanitize_title('id-'.$post_id.$brand.$model.$engine);
$where = array( 'ID' => $post_id );
$wpdb->update( $wpdb->posts, array( 'post_title' => $title, 'post_name' => $slug), $where );
}
}
add_action('init', 'cars_save_post');
function cars_save_post($post_id) {
if ( ! defined( 'DOING_AUTOSAVE' ) && ! DOING_AUTOSAVE ) return;
add_action('save_post', 'custom_post_type_title', 100);
add_action('publish_post', 'custom_post_type_title', 100);
}
問題は、画像を添付して投稿から移動した場合、投稿は保存されますが、投稿リストに下書きとして表示されないことです。私がそれに到達することができる唯一の方法(私が知っている) - メディアの「添付」リンクを通して。
それがバグなのかどうかわからないのですが、Manage Postsリストにそれらの投稿を見たいのですが。解決策はありますか?
編集:
たぶん私は十分にはっきりしなかった。このシナリオを試してみてください。
あなたがあなたの投稿ページをチェックするなら今、あなたはそこに "自動ドラフト"を見つけることができません。ただし、メディアページを確認すると、今アップロードした画像が「自動ドラフト」に添付され、そこからアクセスできます。その画像を削除しても、その投稿は残ります。
私は自分のサーバーをきれいにしておきたいだけなので、Authorが間違えて自分の投稿を保存するのを忘れた場合は、投稿ページからその投稿に簡単にアクセスできるはずです。
だから私の質問は、これはバグなのか、どうすれば直すことができるのか(著者の投稿ページに "Auto Drafts"を表示する)?
リストが投稿タイトルのみに依存しないように、カスタム投稿投稿リストに表示される列を変更する必要があるかもしれません。
私は似たような状況を持っています、「注目の画像」(および「リンク」カスタムメタボックス)だけで構成されるカスタム投稿タイプ。私は投稿リストを修正して画像を出力しました。これは編集投稿ページにリンクしています。
あなたは同様のことをする必要があるかもしれません。