• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Yoast / wordpress-seo / 5066322038

pending completion
5066322038

push

github

GitHub
Merge pull request #20316 from Yoast/JRF/ghactions-run-more-selectively

2550 of 29012 relevant lines covered (8.79%)

0.32 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/helpers/permalink-helper.php
1
<?php
2

3
namespace Yoast\WP\SEO\Helpers;
4

5
use Yoast\WP\SEO\Models\Indexable;
6

7
/**
8
 * A helper object for permalinks.
9
 */
10
class Permalink_Helper {
11

12
        /**
13
         * Retrieves the permalink for an indexable.
14
         *
15
         * @param Indexable $indexable The indexable.
16
         *
17
         * @return string|null The permalink.
18
         */
19
        public function get_permalink_for_indexable( $indexable ) {
20
                switch ( true ) {
21
                        case $indexable->object_type === 'post':
×
22
                                if ( $indexable->object_sub_type === 'attachment' ) {
×
23
                                        return \wp_get_attachment_url( $indexable->object_id );
×
24
                                }
25
                                return \get_permalink( $indexable->object_id );
×
26
                        case $indexable->object_type === 'home-page':
×
27
                                return \home_url( '/' );
×
28
                        case $indexable->object_type === 'term':
×
29
                                $term = \get_term( $indexable->object_id );
×
30

31
                                if ( $term === null || \is_wp_error( $term ) ) {
×
32
                                        return null;
×
33
                                }
34

35
                                return \get_term_link( $term, $term->taxonomy );
×
36
                        case $indexable->object_type === 'system-page' && $indexable->object_sub_type === 'search-page':
×
37
                                return \get_search_link();
×
38
                        case $indexable->object_type === 'post-type-archive':
×
39
                                return \get_post_type_archive_link( $indexable->object_sub_type );
×
40
                        case $indexable->object_type === 'user':
×
41
                                return \get_author_posts_url( $indexable->object_id );
×
42
                }
43

44
                return null;
×
45
        }
46
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc