我使用下面的代码来创建我的网站的子页面列表。我希望所有的网址都有一些像#theheading添加到最后,这样当你去的网页,它会去到一个特定的位置上的网页有该id。
/* List Child Pages version 2 */
<?php
function wpse_list_child_pages_two( $cats = [] ) {
global $post;
$current_ID = $post->ID;
if ( is_page() && $post->post_parent ) {
$child_of = $post->post_parent;
} else {
$child_of = $current_ID;
}
// Get the category IDs for passed in category names for query.
$cats = ( array ) $cats;
$cats = array_map( 'get_cat_ID', $cats );
$args = [
'post_type' => 'page',
'posts_per_page' => -1,
'post_parent' => $child_of,
'order' => 'ASC',
'orderby' => 'menu_order',
'category__not_in' => $cats,
'after' => 'top'
];
$parent = new WP_Query( $args );
if ( $parent->have_posts() ) : ?>
<?php while ( $parent->have_posts() ) : $parent->the_post(); ?>
<?php
$current = function( $output ) use ( $current_ID ) {
return get_the_ID() === $current_ID ? $output : '';
};
?>
<li class="nav-item nav-item<?php the_ID(); echo $current( ' active ' ); ?>">
<a href="<?php the_permalink(); ?>" <?php echo $current( 'aria-current="page"' ); ?>><?php the_title(); ?></a>
</li>
<?php endwhile; ?>
<?php endif; wp_reset_postdata();
}
如果我像下面这样把#theheading添加到html中,它会添加到我的permalink中的/之后
<a href="<?php the_permalink(); ?> #theheading" <?php echo $current( 'aria-current="page"' ); ?>><?php the_title(); ?></a>
是否有一种简单的方法可以将sting传递到the_permalink()的末尾;在我的网址的结束斜线之前的结果?
尝试将#theheading添加到html中的函数后。
2条答案
按热度按时间oxcyiej71#
你可以用javascript.对于WordPress你可以使用钩子
the_permalink
https://developer.wordpress.org/reference/hooks/the_permalink/例如:
顺便问一下,你有没有试过在URL和哈希之间没有空格?
aydmsdu92#
好了,原来我尝试的方法是转到#theheading.由于某种原因,当我最初测试它时,它只是刷新页面而没有转到#theheading,所以我假设它是从url和#theheading之间的/(例如:someurl/#theheading),但它现在可以工作了。不过你是对的,多余的空间应该被删除。所以下面的内容可以工作。