'', 'link_class' => '', 'link_aria_label' => '', ); $options = array_merge( $default_options, $options ); $this->name = $name; foreach ( $tabs as $tab ) { $this->add_tab( $tab ); } $this->link_content = $link_content; $this->link_title = $options['link_title']; $this->link_class = $options['link_class']; $this->link_aria_label = $options['link_aria_label']; } /** * Outputs the section link if any tab has been added. */ public function display_link() { if ( $this->has_tabs() ) { printf( '
  • %5$s
  • ', esc_attr( $this->name ), esc_attr( $this->link_class ), ( '' !== $this->link_title ) ? ' title="' . esc_attr( $this->link_title ) . '"' : '', ( '' !== $this->link_aria_label ) ? ' aria-label="' . esc_attr( $this->link_aria_label ) . '"' : '', $this->link_content ); } } /** * Outputs the section content if any tab has been added. */ public function display_content() { if ( $this->has_tabs() ) { $html = '
    '; $html .= '
    '; $html .= '%3$s'; $html .= '
    '; printf( $html, esc_attr( $this->name ), $this->tab_links(), $this->tab_content() ); } } /** * Add a `WPSEO_Metabox_Tab` object to the tabs. * * @param WPSEO_Metabox_Tab $tab Tab to add. */ public function add_tab( WPSEO_Metabox_Tab $tab ) { $this->tabs[] = $tab; } /** * Checks if any tabs have been added to the section. * * @return bool */ protected function has_tabs() { return ! empty( $this->tabs ); } /** * Concatenates all tabs' links into one html string. * * @return string */ private function tab_links() { $links = ''; foreach ( $this->tabs as $tab ) { $links .= $tab->link(); } return $links; } /** * Concatenates all tabs' content into one html string. * * @return string */ private function tab_content() { $content = ''; foreach ( $this->tabs as $tab ) { $content .= $tab->content(); } return $content; } }