wordpress获取所有发布页面永久链接

时间:2015-05-31 10:42:05

标签: php mysql wordpress

我想获取所有已发布页面的固定链接并将其导出到excel文件。

什么是最佳解决方案?

  • 我应该转到wp-admin面板并从页面编辑器复制粘贴永久链接?
  • 我可以使用mysql查询获取导出数据吗?

1 个答案:

答案 0 :(得分:0)

通过SQL查询可以但非常困难,因为WordPress允许您更改永久链接结构 - 因此SQL查询需要考虑所有永久链接选项,以便在执行查询时构建正确的永久链接。

我想你正在寻找一种要求你从管理页面复制粘贴链接的方法; - )

到目前为止,最好和最简单的方法是编写一个小脚本,在WordPress中为您运行导出并使用函数get_pagesget_permalink

// Get a list of all published pages from WordPress.
$pages = get_pages( 'post_status=publish' );

// Loop through all pages and fetch the permalink for each page.
for ( $pages as $page ) {
  $permalink = get_permalink( $page->ID );
  // Do something with the permalink now...
}

注意:此代码只能在WordPress中运行,即插件或主题内部。另外如何进行excel导出超出了我的答案......

就个人而言,我会创建一个WordPress插件(有很多关于它是如何工作的指南,like this one)。 在插件中,您只需检查URL参数,如果存在此参数,则导出数据。另外,我会在导出数据之前检查请求导出的用户是否具有管理员权限。

有点像这样:

/** 
 * The WordPress plugin header... 
 */

$allowed = false;
$requested = false;

// Check if the current user has admin capabilies.
if ( current_user_can( 'manage_options' ) ) { $allowed = true; }

// Check if the user requested the export.
// i.e. by calling URL http://yoursite.com?export_permalinks=1
if ( 1 == $_GET['export_permalinks'] ) { $requested = true; }

if ( $requested && $allowed ) {
  // 1. Get a list of all published pages from WordPress.
  $pages = get_pages( 'post_status=publish' );

  // 2. Build the export data.
  $export = array();
  for ( $pages as $page ) {
    $permalink = get_permalink( $page->ID );
    $export[] = array( $page->ID, $permalink );
  }

   // 3. Export the data (I just var_dump it as example).
   var_dump( $export );

   // We're done, so don't execute anything else.
   exit;
}

请注意,此代码只能解释我建议的工作流程。它不使用最佳做法,我不建议在现场网站上使用它