Skip to content

Instantly share code, notes, and snippets.

@jazbek
Last active December 22, 2020 23:03
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save jazbek/4525380 to your computer and use it in GitHub Desktop.
Save jazbek/4525380 to your computer and use it in GitHub Desktop.
// sfw endpoint
add_action( 'init', 'add_sfw_endpoint' );
function add_sfw_endpoint()
{
add_rewrite_endpoint( 'sfw', EP_ALL );
}
add_action( 'pre_get_posts', 'sfw_pre_get_posts' );
function sfw_pre_get_posts($query)
{
global $wp_query;
if (isset($wp_query->query_vars['sfw']))
{
$query->query_vars['tax_query'][] = array(
'taxonomy' => 'post_tag',
'field' => 'slug',
'terms' => 'nsfw',
'operator' => 'NOT IN',
);
if ( ! empty($wp_query->query_vars['sfw']))
{
$vars = explode('/', $wp_query->query_vars['sfw']);
foreach ($vars as $i => $var)
{
if ($i % 2 == 0)
{
if ( ! $wp_query->is_singular() && $var == 'page')
{
$var = 'paged';
if ($vars[$i+1] > 1)
{
$wp_query->is_paged = true;
}
}
$wp_query->query_vars[$var] = $vars[$i+1];
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment