0

ページネーションでタグの URL を取得しようとしています。これは完全なコードです。wp-graphql 関数を拡張しようとしています。このようにして、タグのページ付けされたタグの URL を取得できます。私は30k以上のタグを持っています。ページ分割されたカテゴリ、投稿、作成者の URL を正常に取得できましたが、これget_tags()が wp-graphql で想定どおりに機能しない理由がわかりません。

//Get all tag urls for sitemap
add_action('graphql_register_types', function () {
    register_graphql_field('RootQuery', 'getTagUrls', [
        'type' => ['list_of' => 'String'],
        'args' => [
            'pageNo' => [
                'type' => 'int',
            ],
            'perPage' => [
                'type' => 'int',
            ],
        ],
        'description' => __('This function returns tag urls, It takes pageNo and PerPage as optional args.'),
        'resolve' => function ($source, $args, $context, $info) {
            $tagUrls = array();
            $paged = (isset($args['pageNo'])) ? ($args['pageNo']) : 1;
            $perPage = (isset($args['perPage'])) ? ($args['perPage']) : 10;
            $offset = ($paged - 1) * $perPage;
            $number = $perPage + $offset;
            $tags = get_tags(array(
                'orderby' => 'name',
                'order' => 'ASC',
                'number' => $number,
                'offset' => $offset,
            ));
            foreach ($tags as $tag) {
                $fullUrl = esc_url(get_category_link($tag->term_id));
                $url = str_replace(home_url(), '', $fullUrl);
                array_push($tagUrls, $url);
            }
            return array_merge($tagUrls);
        },
    ]);
});
4

1 に答える 1