以数组中的字符串形式获取所有页面

时间:2015-09-26 作者:Wordica

我试图以某种方式获取页面名称数组。我认为在WP的一些默认方法中是不可能的。

<?php $args = array(
  \'authors\'      => \'\',
  \'child_of\'     => 0,
  \'date_format\'  => get_option(\'date_format\'),
  \'depth\'        => 0,
  \'echo\'         => 0,
  \'exclude\'      => \'\',
  \'include\'      => \'\',
  \'link_after\'   => \'\',
  \'link_before\'  => \'\',
  \'post_type\'    => \'page\',
  \'post_status\'  => \'publish\',
  \'show_date\'    => \'\',
  \'sort_column\'  => \'menu_order, post_title\',
  \'sort_order\'   => \'\',
  \'title_li\'     => __(\'Pages\'), 
  \'walker\'       => new Walker_Page
)
;?>

$arr = wp_list_pages($args);

print_r($arr);
但此返回链接-s“<;A>”标记。。。也许在PHP中,我可以通过某种方式将此链接“转换”为字符串?:)

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

使用get_pages() 获取页面对象数组,然后将结果传递给wp_list_pluck() 要提取仅包含页面标题的数组,请执行以下操作:

$page_titles = wp_list_pluck( get_pages(), \'post_title\' );
print_r( $page_titles );

SO网友:jdm2112

与web开发中的大多数任务一样,实现这一点的方法不止一种。我的建议是使用WP_Query amd按获取所有页面post type.

$args = array(
    \'post_type\' => \'page\',
    \'posts_per_page\' => -1
);

$the_query = new WP_Query( $args ); ?>

//Loop here....
EDIT: 重新阅读您的问题后,我发现我没有注意到“数组”要求。这种方法创建WP\\u查询类的新实例,并返回一个对象,而不是数组。考虑到这一点,更正后的版本如下:

<?php
$page_titles = array();
$args = array(
    \'post_type\' => \'page\',
    \'posts_per_page\' => -1
);

$the_query = new WP_Query( $args ); 

// If there are pages, let\'s loop
if($the_query->have_posts()):  
    while($the_query->have_posts()):
        $the_query->the_post(); 
        $page_titles[] = get_the_title();  // Add each page title to your array
    endwhile; 

else : 
    // Do stuff if no pages
endif;

// Display array contents
echo \'<pre>\';
print_r($page_titles);
echo \'</pre>\';
?>

相关推荐

Read_Private_Pages功能不适用于新角色

我已经创建了一个新的用户角色-供应商-能够read_private_pages, 但当我以这样的用户身份登录并转到一个私人页面时,我看不到它。以下是我的插件代码:function fc_add_role($role, $display_name, $capabilities = array()) { if (!empty($role)) { return wp_roles()->add_role( $role, $display_name, $capabili