向wp_list_ages添加元素(在<li>内,但在<a>之前)

时间:2014-01-19 作者:Paul Nelson Baker

我正在写我的第一个wordpress主题,我遇到了一些麻烦。我想在每个<li>, 但在实际<a ... > 要素

在我的主题中,我使用wp_list_pages(\'&sort_column=menu_order&link_before=<div></div>&title_li=\');, 这几乎是我想要的,但不是完全。我从上述方法调用中获得的输出结果如下:

<li class="page_item page-item-2"><a href="http://localhost/htdocs/wordpress/?page_id=2"><div></div>Page Name A</a></li>
<li class="page_item page-item-4 current_page_item"><a href="http://localhost/htdocs/wordpress/?page_id=4"><div></div>Page Name B</a></li>
如您所见,这将<div><a> 而不是在它之前。

我已经尝试使用CSS:before选择器来执行我想要的操作,但在本例中它不起作用,因为我正在将一些样式添加到<li><a> 我不想实际影响这个临时div将使用的新区域的元素(一些轻微的倾斜)。(我已经尝试反转倾斜,但对于:before选择器无效)

我还尝试使用一个黑客正则表达式来完成此操作:echo preg_replace("/>\\s*<a/i", "><div></div><a", (string)wp_list_pages(\'&sort_column=menu_order&title_li=\')); 但这仍然不起作用(这让我很困惑)。

我知道这有点奇怪,所以非常感谢您的帮助!

1 个回复
最合适的回答,由SO网友:Gareth Gillman 整理而成

如果我正确理解了您的问题,您可以使用自定义查询来代替wp\\U list\\U页面,例如使用get\\U页面。

$args = array(
\'sort_order\' => \'ASC\',
\'sort_column\' => \'menu_order\',
\'hierarchical\' => 1,
\'exclude\' => \'\',
\'child_of\' => 0,
\'parent\' => -1,
\'exclude_tree\' => \'\',
\'number\' => \'\',
\'offset\' => 0,
\'post_type\' => \'page\',
\'post_status\' => \'publish\'
);
$pages = get_pages($args); 
foreach($pages as $page){
 echo \'<li><div><a href="\'.get_page_link( $page->ID ).\'">\'.$page->post_title.\'</a></div></li>\';
}
虽然$args中的一些代码可能会被删除

结束