headlines[ $headline_slug ] ) ) { $this->headlines[ $headline_slug ] = 1; } else { $this->headlines[ $headline_slug ] = $this->get_headline_count( $headline_slug ) + 1; } if ( $this->headlines[ $headline_slug ] > 1 ) { $new_headline_slug = $headline_slug . '-' . $this->headlines[ $headline_slug ]; if ( isset( $this->headlines[ $new_headline_slug ] ) ) { $new_headline_slug = $this->add_headline( $new_headline_slug ); } $new_headline_count = $this->get_headline_count( $new_headline_slug ); if ( 0 === $new_headline_count ) { $new_headline_count = 1; } $this->headlines[ $new_headline_slug ] = $new_headline_count; return $new_headline_slug; } return $headline_slug; } /** * Get the anchor for a headline * * @param string $headline The headline. * @return string The anchor for the headline */ public function get_headline_anchor( $headline ) { if ( empty( $headline ) ) { return ''; } $headline_slug = simpletoc_sanitize_string( $headline ); $headline_slug = $this->add_headline( $headline_slug ); return $headline_slug; } /** * Get the count of a headline slug. * * @param string $headline_slug The slug of the headline. * @return mixed The count of the headline slug. */ private function get_headline_count( $headline_slug = '' ) { return $this->headlines[ $headline_slug ] ?? 0; } }