Get Related Entries and then filter those by specific category in url segment
We’ve built a plugin called Router that solves exactly this use case.

For the URL structure you described – domain.com/photographers/john-doe/food – this can be solved by the following configuration for the Router plugin:

/* config/router.php */

return [
  'rules' =&gt; [

    // URI pattern with named subpatterns
    '&lt;placeholder:photographers&gt;/&lt;photographerEntry:{slug}&gt;/&lt;foodCategory:{slug}&gt;' =&gt; [

      // array of filters that are activated when
      // the key matches a subpattern variable declared in
      // the route's regular expression
      'criteria' =&gt; [
        'placeholder' =&gt; 'section:photographerPhotos', // Base section
        'photographerEntry' =&gt; 'entry:photographers',  // Find slug in section        
        'foodCategory' =&gt; 'category:food',  // Find slug in group
      ],

      // template file
      'template' =&gt; 'photographerPhotos/_entry',
    ],

  ]
];


And in the template:

{# photographerPhotos/_entry #}

{{ entries }} {# array of photos (related to both the photographer and food category) #}
{{ photographerEntry }} {# photographer Entry object #}
{{ foodCategory }} {# food Category object #}