页面ID在不同的安装中可能会有所不同,并且无法更改,因此可以选择使用get_page_by_path
因为页面段塞很容易更改:
<div class="my-link-box">
<?php $page = get_page_by_path(\'my-page\'); ?>
<a href="<?php echo get_permalink($page); ?>"><?php echo $page->post_title; ?></a>
</div>
然而,这也不是一个很好的解决方案。
编写自定义小部件后,可以设置选项来选择要显示链接的页面。e、 g.:
class MyPageLinkWidget extends WP_Widget {
function __construct(){
parent::__construct( false, \'Page Link Widget\' );
}
function widget( $args, $instance ){
if ( ! isset($instance[\'wpage\']) || (int) $instance[\'wpage\'] <= 0 ) return;
$page = get_post( $instance[\'wpage\'] );
echo $args[\'before_widget\'];
echo \'<div class="my-link-box">\';
if ( isset($instance[\'title\']) ) {
$title = apply_filters( \'widget_title\', $instance[\'title\'] );
if ( $title ) echo $args[\'before_title\'] . $title . $args[\'after_title\'];
}
echo \'<a href="\' . get_permalink( $page ) .\'">\' . $page->post_title . \'</a>\';
echo \'</div>\';
echo $args[\'after_widget\'];
}
function update( $new_instance, $old_instance ){
$instance = $old_instance;
$instance[\'title\'] = strip_tags( $new_instance[\'title\'] );
if ( isset( $new_instance[\'wpage\'] ) && (int) $new_instance[\'wpage\'] > 0 ) {
$instance[\'wpage\'] = $new_instance[\'wpage\'];
}
return $instance;
}
function form( $instance ){
$default = array( \'wpage\'=>\'-1\', \'title\' => \'\' );
$instance = wp_parse_args( (array) $instance, $default );
$args = array(
\'name\' => $this->get_field_name(\'wpage\'),
\'show_option_none\' => \'None\',
\'option_none_value\' => \'-1\',
\'selected\' => $instance[\'wpage\']
);
echo \'<p><label>Title:</label>\';
echo \'<input class="widefat" name="\' . $this->get_field_name(\'title\') . \'" type="text" value="\' . $instance[\'title\'] . \'" /></p>\';
wp_dropdown_pages( $args );
}
}
但是,如果您的小部件只包含指向页面的链接,请考虑创建
custom menu 并使用“自定义菜单”小部件。