How to hook wp_list_pages?

时间:2012-02-17 作者:Mohamed Said

如何挂接wp\\u list\\u pages函数,使其读取自定义字段的值并显示它,而不是显示页面标题?

3 个回复
最合适的回答,由SO网友:Zack 整理而成

谷歌快速搜索出this

Source

请尝试以下操作:

function wp_list_pages_filter($output) {
    // modify $output here, it\'s a string of <li>\'s by the looks of source
    return $output;
}
add_filter(\'wp_list_pages\', \'wp_list_pages_filter\');

SO网友:AlxVallejo

在这种情况下,需要Walker类扩展:

class My_Custom_Walker extends Walker_page {
function start_el(&$output, $page, $depth, $args, $current_page) {
    if ( $depth )
        $indent = str_repeat("\\t", $depth);
    else
        $indent = \'\';

    extract($args, EXTR_SKIP);
    $output .= $indent . 
            \'<li><div>\' . get_post_meta($post_id, $key, $single) . \'</div></li>\';

} // End start_el
} // End Walker Class
然后,当你使用wp_list_pages 函数,则调用该类:

// Call class:
$My_Walker = new My_Custom_Walker();

$args = array(
    \'walker\'      => $My_Walker
);

wp_list_pages( $args );
关于这个主题的文档有点少,所以如果您需要更多帮助,请告诉我。

SO网友:mor7ifer

您可以将自己的自定义助行器作为ARG之一传入,使用该助行器传入扩展的助行器Walker_Page 并使用您自己的自定义帖子标题。

结束

相关推荐

Apply_Filters函数及其变量的说明

我正在学习如何使用PHP构建html表单,方法是以“simplr表单注册”插件为例。我正在查看以下代码:$form .= apply_filters(\'simplr-reg-instructions\', __(\'Please fill out this form to sign up for this site\', \'simplr-reg\')); 您能解释一下这里发生了什么吗?函数的作用是什么,为什么需要“simpr reg指令”和“simpr reg”?为什么这句话不能简单地说:$