Context: 我们创建了一个插件,允许在web、移动应用程序或两者中发布帖子。这是通过元密钥完成的。当仅在移动应用程序模式下显示时,则其对web隐藏。The plugin code, that filters with meta.
Problem: 虽然它是隐藏的搜索,一般职位和直接。但它仍然可以在帖子内容下的下一个prev导航中看到。我们需要基于元密钥以某种方式过滤帖子导航。
我可以看到get_the_post_navigation()
函数位于主题中,我可以看到<?php if( get_theme_mod( \'post_navigation\', false ) === false ) the_post_navigation(); ?>
位于。
可以get_the_post_navigation 或post_navigation 使用meta值进行过滤,或者唯一的选择是不完全使用post\\u导航,并创建一个自定义函数来显示next和prev。类似this answer.
这个content-single.php 是的启动器the_post_navigation() 因此:
<?php if( get_theme_mod( \'post_navigation\', false ) === false ) the_post_navigation(); ?>
the_post_navigation() 位于内部
wp-includes/link-template.php:
function the_post_navigation( $args = array() ) {
echo get_the_post_navigation( $args );
}
以及
get_the_post_navigation() 在链接模板内部:
function get_the_post_navigation( $args = array() ) {
// Make sure the nav element has an aria-label attribute: fallback to the screen reader text.
if ( ! empty( $args[\'screen_reader_text\'] ) && empty( $args[\'aria_label\'] ) ) {
$args[\'aria_label\'] = $args[\'screen_reader_text\'];
}
$args = wp_parse_args(
$args,
array(
\'prev_text\' => \'%title\',
\'next_text\' => \'%title\',
\'in_same_term\' => false,
\'excluded_terms\' => \'\',
\'taxonomy\' => \'category\',
\'screen_reader_text\' => __( \'Post navigation\' ),
\'aria_label\' => __( \'Posts\' ),
)
);
$navigation = \'\';
$previous = get_previous_post_link(
\'<div class="nav-previous">%link</div>\',
$args[\'prev_text\'],
$args[\'in_same_term\'],
$args[\'excluded_terms\'],
$args[\'taxonomy\']
);
$next = get_next_post_link(
\'<div class="nav-next">%link</div>\',
$args[\'next_text\'],
$args[\'in_same_term\'],
$args[\'excluded_terms\'],
$args[\'taxonomy\']
);
// Only add markup if there\'s somewhere to navigate to.
if ( $previous || $next ) {
$navigation = _navigation_markup( $previous . $next, \'post-navigation\', $args[\'screen_reader_text\'], $args[\'aria_label\'] );
}
return $navigation;
}