导出相当永久链接和帖子标题的列表

jef*_*eff 12 mysql wordpress

正在寻找一种方法来导出WordPress中相当永久链接的列表以及相应的帖子标题.寻找实际的永久链接结构而不是短链接.我想如果必须的话,我会使用一个简短的链接,但我更喜欢完整的永久链接.

Mik*_*kel 32

这是一个独立的PHP文件,您可以将其保存到您的网站的根目录中/export.php,当您使用浏览器调用它时,它将发送一个制表符分隔的纯文本列表,其中包含漂亮的固定链接,帖子标题和(作为奖励) )邮政类型.

只需在浏览器中加载URL,然后" 另存为 "文本文件,然后可以在Excel中加载,否则您需要处理它.

<?php

include "wp-load.php";

$posts = new WP_Query('post_type=any&posts_per_page=-1&post_status=publish');
$posts = $posts->posts;
/*
global $wpdb;
$posts = $wpdb->get_results("
    SELECT ID,post_type,post_title
    FROM {$wpdb->posts}
    WHERE post_status<>'auto-draft' AND post_type NOT IN ('revision','nav_menu_item')
");
*/

header('Content-type:text/plain');
foreach($posts as $post) {
    switch ($post->post_type) {
        case 'revision':
        case 'nav_menu_item':
            break;
        case 'page':
            $permalink = get_page_link($post->ID);
            break;
        case 'post':
            $permalink = get_permalink($post->ID);
            break;
        case 'attachment':
            $permalink = get_attachment_link($post->ID);
            break;
        default:
            $permalink = get_post_permalink($post->ID);
            break;
    }
    echo "\n{$post->post_type}\t{$permalink}\t{$post->post_title}";
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

-麦克风

PS我使用标准的WordPress,WP_Query()但也包括一个注释掉的SQL,以防你喜欢(或需要)使用它.


小智 7

今天早上在EE上回答了这个问题:) http://wp.daveheavyindustries.com/2011/02/08/wordpress-permalink-via-sql/

这个查询应该为你做

SELECT  wpp.post_title,
        wpp.guid,
        wpp.post_date,
        CONCAT
        (
          wpo_su.option_value,
          REPLACE
          (
            REPLACE
            (
              REPLACE
              (
                REPLACE
                (
                  wpo.option_value, 
                  '%year%',
                  date_format(wpp.post_date,'%Y')
                ),
                '%monthnum%',
                date_format(wpp.post_date, '%m')
              ),
              '%day%',
              date_format(wpp.post_date, '%d')
            ),
            '%postname%', 
            wpp.post_name
          )
        ) AS permalink
  FROM wp_posts wpp
  JOIN wp_options wpo
    ON wpo.option_name = 'permalink_structure'
   AND wpo.blog_id = 0
  JOIN wp_options wpo_su
    ON wpo_su.option_name = 'siteurl'
   AND wpo_su.blog_id = wpo.blog_id
 WHERE wpp.post_type = 'post'
   AND wpp.post_status = 'publish'
 ORDER BY wpp.post_date DESC 
Run Code Online (Sandbox Code Playgroud)