{"id":13972973,"date":"2021-01-28T23:52:08","date_gmt":"2021-01-28T23:52:08","guid":{"rendered":"https:\/\/wordpress.org\/support\/topic\/generate_do_element_classes\/"},"modified":"2021-01-28T23:52:08","modified_gmt":"2021-01-28T23:52:08","slug":"generate_do_element_classes","status":"publish","type":"topic","link":"https:\/\/wordpress.org\/support\/topic\/generate_do_element_classes\/","title":{"rendered":"generate_do_element_classes"},"content":{"rendered":"<p>hiya nice GP peeps \ud83d\ude42<\/p>\n<p>i&#8217;m trying to implement the <code>generate_do_element_classes<\/code> functionality in a theme i&#8217;m creating from scratch (as a self-taught tutorial), but i&#8217;m getting <code>Undefined variable: classes error<\/code> and a warning that <code>join() has too few args (1)<\/code>. <\/p>\n<p>the code does output part of the attribute in the target element but the string is empty, like this <code>class=&quot;&quot;<\/code><\/p>\n<p>i really enjoy learning how GP code works and would greatly appreciate any guidance if you have a moment&#8230; no worries if not.<\/p>\n<p>thank you &lt;3! <\/p>\n<p>my theme-functions.php:<\/p>\n<pre><code>function mysite_do_element_classes( $context, $class = &#039;&#039; ) {\n\t$after = apply_filters( &#039;mysite_after_element_class_attribute&#039;, &#039;&#039;,\n                                   $context );\n\n\tif ( $after ) {\n\t\t$after = &#039; &#039; . $after;\n\t}\n\n \techo &#039;class=&quot;&#039; . join( &#039; &#039;, mysite_get_element_classes( $context, $class ) ) . &#039;&quot;&#039; . $after;\n}\n\nfunction mysite_get_element_classes( $context, $class = &#039;&#039; ) {\n\t$classes = array();\n\n\tif ( ! empty( $class ) ) {\n\t\tif ( ! is_array( $class ) ) {\n\t\t\t$class = preg_split( &#039;#\\s+#&#039;, $class );\n\t\t}\n\n\t\t$classes = array_merge( $classes, $class );\n\t}\n\n\t$classes = array_map( &#039;esc_attr&#039;, $classes );\n\n\treturn apply_filters( &quot;mysite_create_{$context}_class&quot;, $classes, $class );\n}<\/code><\/pre>\n<p>my markup.php:<\/p>\n<pre><code>if ( ! function_exists( &#039;mysite_create_header_classes&#039; ) ) {\n  add_filter( &#039;mysite_create_header_class&#039;,   \n    &#039;mysite_create_header_classes&#039; );\n\n\tfunction mysite_create_header_classes( $classes ) {\n\n\t\t$classes[] = &#039;site-header&#039;;\n\t}\n\treturn $classes;\n}<\/code><\/pre>\n","protected":false},"template":"","class_list":["post-13972973","topic","type-topic","status-publish","hentry","topic-tag-class","topic-tag-css","topic-tag-function"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic\/13972973","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic"}],"about":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/types\/topic"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic\/13972973\/revisions"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/media?parent=13972973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}