*/ public function get_keywords_for( int $post_id, string $post_type = 'post' ): array { if ( $post_id <= 0 || 'post' !== $post_type || ! function_exists( 'get_post_meta' ) ) { return array(); } $out = array(); // Primary focus keyword. $primary = get_post_meta( $post_id, '_yoast_wpseo_focuskw', true ); if ( is_string( $primary ) && '' !== trim( $primary ) ) { $out[] = trim( $primary ); } // Additional keyphrases (Yoast Premium stores a serialised array). $multi_raw = get_post_meta( $post_id, '_yoast_wpseo_focuskw_multi_terms', true ); if ( is_string( $multi_raw ) && '' !== $multi_raw ) { $multi = maybe_unserialize( $multi_raw ); if ( is_array( $multi ) ) { foreach ( $multi as $item ) { if ( is_array( $item ) && isset( $item['keyword'] ) ) { $kw = trim( (string) $item['keyword'] ); } elseif ( is_string( $item ) ) { $kw = trim( $item ); } else { continue; } if ( '' !== $kw && ! in_array( $kw, $out, true ) ) { $out[] = $kw; } } } } return $out; } }