我正在写我的第一个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=\'));
但这仍然不起作用(这让我很困惑)。
我知道这有点奇怪,所以非常感谢您的帮助!
最合适的回答,由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中的一些代码可能会被删除