私は、Codepress Admin ColumnsでExcerptという名前のカスタム列を追加していますが、その抜粋がいつ記入されていないかを具体的に知りたいのです。抜粋がない場合は、代わりにWordPressが自動的に投稿内容を表示します。これは、投稿リスト画面から「抜粋ビュー」をオンにすることによってもテスト可能です。
Default_excerptフックを実装しても管理者側には何もしないようです。コードベースを理解しても、合理的な時間内にどこにもアクセスできないため、これを解決するための手助けを求めています。
ここでは、カスタム列の追加と抜粋の存在のテストの両方のためのフィルターと関数を使用して、これを完全に効果的に説明しています。
注意してください。私は意図的にhas_excerpt
の内容を切り取って、実際にフードの下で何が起こっているのかを示します。代わりに!has_excerpt
を使うことができます。
add_filter('the_excerpt', 'no_excerpt');
add_filter('manage_posts_columns' , 'excerpt_column');
add_action( 'manage_posts_custom_column' , 'excerpt_column_content', 10, 2 );
function no_excerpt(){
//replace empty( $post->post_excerpt ) with !has_excerpt if you wish
if ( is_admin() && empty( $post->post_excerpt ) )
return 'not here buddy!';
}
function excerpt_column($columns) {
return array_merge( $columns, array('excerpt_column' => __('Excerpt')) );
}
function excerpt_column_content( $column, $post_id ) {
the_excerpt();
}
これは、さまざまな方法で関数を配置したり呼び出したりすることによって得られる効率性を考慮に入れていません。これはほんの一例です。私のテストケースでは、
"not here buddy!"
...抜粋が存在しない場合に返されるものです。ニーズに合わせて変更してください。
手動の抜粋をチェックする has_excerpt()
関数があります。
あなたの必要性に応じて、ロジックのためにそれを使ってカラム出力を構築するか、現在の投稿が手動の抜粋を持っていなければthe_excerpt
と空のreturnにフックすることができます。