在自定义管理页面中通过选择字段获取所选页面的链接

时间:2017-08-29 作者:grazianodev

我在Wordpress网站的后端创建了一个页面列表,使用wp_dropdown_pages();, 这当然会显示现有页面的下拉列表。我想要实现的不是检索名称,而是检索所选页面的链接,这样我就可以将其用作前端自定义按钮的href。

我对创建自定义管理选项非常陌生。我可以使用get_option(), 但我不知道在这种情况下如何处理。

任何帮助都将不胜感激!

1 个回复
最合适的回答,由SO网友:HU ist Sebastian 整理而成

首先,按如下方式注册设置:

function my_awesome_register_fields_for_additional_settings(){
    register_setting(\'reading\', \'my_awesome_pagelink_for_frontend_button\');
    add_settings_field(\'my_awesome_pagelink_for_frontend_button\', \'<label for="my_awesome_pagelink_for_frontend_button">The Frontend Button shall link to this page:</label>\' , \'my_awesome_pagelink_for_frontend_button_html\', \'reading\');
}

add_filter(\'admin_init\', \'my_awesome_register_fields_for_additional_settings\');
然后,为设置字段定义回调:

function my_awesome_pagelink_for_frontend_button_html(){
    $option = (int)get_option(\'my_awesome_pagelink_for_frontend_button\',0);
    wp_dropdown_pages(array(
            \'selected\' => $option,
            \'name\'   => \'my_awesome_pagelink_for_frontend_button\',
            \'show_option_none\'  => \'Please Choose\',
            \'option_none_value\' => 0, 
                ));
}
wp\\u dropdown\\u pages函数使用页面ID作为值,因此您已经设置好了。

你现在需要做的就是像这样回应前端的按钮:

if($buttonlink = (int)get_option(\'my_awesome_pagelink_for_frontend_button\',0)){
      ?><a href="<?php echo get_permalink($buttonlink); ?>" class="button"><?php echo get_the_title($buttonlink); ?></a><?php
}
快乐编码,Kuchenundkakao

编辑:语言。

结束