вывод post_class в неправильной области?

Попытка этого в моем файле функций. На самом деле это намного больше, чем я показываю, но это важная часть, которая перепуталась.

function xyz_loop() { $defaults = array ( 'before' => 'article id="post-' .get_the_ID(). '"' .post_class('clearfix'). 'role="main">', 'after' => '/article>', ); $args = wp_parse_args( $args, $defaults ); extract( $args, EXTR_SKIP ); echo $before; echo 'doing stuff here'; echo $after;} 

function xyz_loop() { $defaults = array ( 'before' => 'article id="post-' .get_the_ID(). '"' .post_class('clearfix'). 'role="main">', 'after' => '/article>', ); $args = wp_parse_args( $args, $defaults ); extract( $args, EXTR_SKIP ); echo $before; echo 'doing stuff here'; echo $after;}

проблема заключается в том, что post_class выводит классы post перед контейнером статьи, а не внутри него.

Могу ли я использовать post_class, как это?

post_class() так что это проблема.

Из кода:

Если вы предпочли бы, чтобы возвращаемые классы post вместо get_post_class() , вы хотели бы использовать get_post_class() .

Так просто сделайте это:

 $the_post_classes = get_post_class( 'clearfix' ); $the_post_class_string = ''; foreach( $the_post_classes as $post_class ) { $the_post_class_string .= $post_class . ' '; } $defaults = array ( 'before' => 'article id="post-' .get_the_ID(). '"' .$the_post_class_string. 'role="main">', // etc... 

UPDATE: Извините. Я забыл, что возвращает массив, а не строку. Вам просто нужно повторить результаты, прежде чем выплевывать их. Приведенный выше код обновляется и тестируется.

Немного короче и проще:

implode (' ', get_post_class( 'clearfix' ) )

Это просто делает его короче и позволяет вам избавиться от надоедливого пространства в конце класса.