我的博客中有一个帖子条目,分为 3 个部分。在条目前半部分的末尾,显示了"第 1 页 2 3"链接。最重要的是,我在第一段之后有一个"阅读更多"按钮链接(如果您在主页、搜索结果、存档)用户必须先单击才能看到帖子的其余部分以及指向帖子 3 部分的链接。
现在我的问题是,如何隐藏"页面 1 2 3"并使其仅在单个帖子页面中显示,即单击"阅读更多"后他们将访问的页面?我不希望读者在前面看到这些链接,只有当他点击阅读更多链接按钮时。我希望分页链接隐藏在主页、存档页面、搜索结果中。
基本上只使帖子的分页链接在单个帖子中可见(帖子.php模板文件可能是吗?我该怎么做?
我想隐藏后分页("第 1 页 2 3"),但它似乎不起作用。或者也许是因为创世纪每页没有分配的类?或者这可能是add_filter的优先次序问题?
我正在使用WordPress和Genesis Framework。我使用的代码如下:
我用来使分页链接显示在网站上的代码,没有它,链接就会被隐藏:
add_filter( 'the_content', function( $content ) {
return $content . custom_wp_link_pages( array( 'echo' => FALSE ) );
}, -1 ); // Lower number = higher priority.
WordPress中自定义分页链接的代码
function custom_wp_link_pages( $args = '' ) {
$defaults = array(
'before' => '<p align="center" id="post-pagination">' . __( 'Pages:' ),
'after' => '</p>',
'text_before' => '',
'text_after' => '',
'next_or_number' => 'number',
'nextpagelink' => __( 'Next page' ),
'previouspagelink' => __( 'Previous page' ),
'pagelink' => '%',
'echo' => 1
);
$r = wp_parse_args( $args, $defaults );
$r = apply_filters( 'wp_link_pages_args', $r );
extract( $r, EXTR_SKIP );
global $page, $numpages, $multipage, $more, $pagenow;
$output = '';
if ( $multipage ) {
if ( 'number' == $next_or_number ) {
$output .= $before;
for ( $i = 1; $i < ( $numpages + 1 ); $i = $i + 1 ) {
$j = str_replace( '%', $i, $pagelink );
$output .= ' ';
if ( $i != $page || ( ( ! $more ) && ( $page == 1 ) ) )
$output .= _wp_link_page( $i );
else
$output .= '<span class="current-post-page">';
$output .= $text_before . $j . $text_after;
if ( $i != $page || ( ( ! $more ) && ( $page == 1 ) ) )
$output .= '</a>';
else
$output .= '</span>';
}
$output .= $after;
} else {
if ( $more ) {
$output .= $before;
$i = $page - 1;
if ( $i && $more ) {
$output .= _wp_link_page( $i );
$output .= $text_before . $previouspagelink . $text_after . '</a>';
}
$i = $page + 1;
if ( $i <= $numpages && $more ) {
$output .= _wp_link_page( $i );
$output .= $text_before . $nextpagelink . $text_after . '</a>';
}
$output .= $after;
}
}
}
if ( $echo )
echo $output;
return $output;
}
我终于让它永远工作了!在我让它工作之前,我进行了全面的试验和错误。这是我修改后的代码(请参阅原始问题中的"自定义分页链接代码")。
我将自定义分页链接的代码放在is_single
内。然后第二个代码,较短的代码,我保持原样。
function custom_wp_link_pages( $args = '' ) {
if ( is_single() ) { // Start of is_single
$defaults = array(
'before' => '<p align="center" id="post-pagination">' . __( 'Pages:' ),
'after' => '</p>',
'text_before' => '',
'text_after' => '',
'next_or_number' => 'number',
'nextpagelink' => __( 'Next page' ),
'previouspagelink' => __( 'Previous page' ),
'pagelink' => '%',
'echo' => 1
);
$r = wp_parse_args( $args, $defaults );
$r = apply_filters( 'wp_link_pages_args', $r );
extract( $r, EXTR_SKIP );
global $page, $numpages, $multipage, $more, $pagenow;
$output = '';
if ( $multipage ) {
if ( 'number' == $next_or_number ) {
$output .= $before;
for ( $i = 1; $i < ( $numpages + 1 ); $i = $i + 1 ) {
$j = str_replace( '%', $i, $pagelink );
$output .= ' ';
if ( $i != $page || ( ( ! $more ) && ( $page == 1 ) ) )
$output .= _wp_link_page( $i );
else
$output .= '<span class="current-post-page">';
$output .= $text_before . $j . $text_after;
if ( $i != $page || ( ( ! $more ) && ( $page == 1 ) ) )
$output .= '</a>';
else
$output .= '</span>';
}
$output .= $after;
} else {
if ( $more ) {
$output .= $before;
$i = $page - 1;
if ( $i && $more ) {
$output .= _wp_link_page( $i );
$output .= $text_before . $previouspagelink . $text_after . '</a>';
}
$i = $page + 1;
if ( $i <= $numpages && $more ) {
$output .= _wp_link_page( $i );
$output .= $text_before . $nextpagelink . $text_after . '</a>';
}
$output .= $after;
}
}
}
if ( $echo )
echo $output;
return $output;
}
} // Closing bracket of is_single