Forum Replies Created

Viewing 1 replies (of 1 total)
  • Thread Starter norgelo

    (@norgelo)

    SOLVED!!! A friend of my found the way –>

    function get_latest_posts_by_term($request) {
    
        $parsed_args=[
        'numberposts'      => 20,
        'orderby'          => 'date',
        'order'            => 'DESC',
        'post_type'        => 'post',
        'tax_query' => array(
            array (
                'taxonomy' => $request['slug'],
                'field' => 'slug',
                'terms' => $request->get_param('name'),
            )
        ),
        ];
        
        $get_posts = new WP_Query;
        $posts= $get_posts->query( $parsed_args );
        //$posts = get_posts($args);
        if (empty($posts)) {
    	return new WP_Error( 'empty_terms', 'There are no posts to display', array('status' => 404) );
        }
    
        $response = new WP_REST_Response($posts);
        $response->set_status(200);
    
              $data2 = [];
    	      $i = 0;
    
    	foreach($posts as $post) {
    		$data2[$i]['id'] = $post->ID;
    		$data2[$i]['title'] = $post->post_title;
            $data2[$i]['excerpt'] = $post->post_excerpt;
            $data2[$i]['date'] = $post->post_date;
    		$data2[$i]['content'] = $post->post_content;
    		$data2[$i]['slug'] = $post->post_name;
            $data2[$i]['author'] = get_the_author_meta('display_name', $post->post_author);
            $data2[$i]['category'] = get_the_category( $post->ID);  
            $data2[$i]['tema'] = get_the_terms($post->ID,'tema');
            $data2[$i]['Ruta-geografica'] = get_the_terms($post->ID,'ruta-geografica');
    		$data2[$i]['featured_image']['thumbnail'] = get_the_post_thumbnail_url($post->ID, 'thumbnail');
    		$data2[$i]['featured_image']['medium'] = get_the_post_thumbnail_url($post->ID, 'medium');
    		$data2[$i]['featured_image']['large'] = get_the_post_thumbnail_url($post->ID, 'large');
            $data2[$i]['post_tags'] = get_the_terms($post->ID,'post_tag');
            $data2[$i]['Youtube_URL'] = get_field('url_pltv', $post->ID);
            
            
    		$i++;
    	}
    
    	return $data2;
    }
    
    add_action('rest_api_init', function() {
     register_rest_route( 'wl/v1', 'posts/terms/(?P<slug>[a-zA-Z0-9-]+)',array(
                    'methods'  => 'GET',
                    'callback' => 'get_latest_posts_by_term'
          ));
    	
    });
    • This reply was modified 3 years ago by norgelo.
Viewing 1 replies (of 1 total)