web-dev-qa-db-ja.com

テーマ別子テーマの投稿クラスの投稿フォーマットセレクタ

テーマ別子テーマで投稿フォーマットを実装するのは非常に苦労しています。投稿フォーマットのテーマのサポートを追加したり、大きな条件文を使用してコンテンツを追加したりすることはできますが、.format-videoなどのセレクターはpostクラスには表示されないので、フォーマットのスタイル設定に使用できます。

いくつかのエコーテストによると、セレクタはpost_class()内にあるべきように見えますが、thematic_post_class()内には見つかりません。代わりにthematic_post_class()を機能させるためにpost_class()を削除してみました。

// remove thematic_post_class to include post format selector in post class
function childtheme_override_post_class() {
     remove_action('thematic_post_class','thematic_access', 9);
}
add_action('init', 'childtheme_override_post_class');

この関数では、thematic_post_class()はもうエコーしませんが、テーマはフォーマットセレクタを登録していません。私は別の投稿でafter_setup_themeアクションフックがTwenty-Tenの子でフォーマットを有効にするように働くことを見ました - 私のテーマの中でこれを試しました、しかしそれは違いを生じませんでした:

function wpfolio_add_format_support() {
    add_theme_support( 'post-formats', array( 'aside', 'gallery', 'video', 'link', 'image', 'quote') );
}
add_action('after_setup_theme', 'wpfolio_add_format_support', 11);`

何か案は?前もって感謝します

3
laras126

さて、私は本当の問題は「どのようにしてThematicにポストフォーマットをボディクラスに追加させるのか」ということになっています。

Functions.phpでこれを試してください。

function my_thematic_post_format_class( $classes = array() ) {
  $format = get_post_format();
  if ( '' == $format )
    $format = 'standard';

  $classes[] = 'format-' . $format;

  return $classes;
}

add_filter( 'post_class', 'my_thematic_post_format_class' );

主題のポストクラス関数をオーバーライドしないでください。そのフィルタを追加するだけで、うまくいくはずです。

1
Dougal Campbell