Экспорт списка красивых постоянных ссылок и заголовка сообщения - PullRequest
12 голосов
/ 12 августа 2010

Ищите способ экспортировать список симпатичных постоянных ссылок в WordPress с соответствующим заголовком поста. Ищем фактическую структуру постоянных ссылок, а не короткую ссылку. Я полагаю, что если понадобится, я буду использовать короткую ссылку, но я предпочитаю полную постоянную ссылку.

Ответы [ 3 ]

32 голосов
/ 13 августа 2010

Это отдельный 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}";
}

Надеюсь, что это поможет.

-Mike

PS Я использовал стандартный WordPress WP_Query(), но также включал закомментированный SQL, если вы предпочитаете (илинужно) чтобы использовать вместо этого.

7 голосов
/ 08 февраля 2011

ответил на 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 
0 голосов
/ 07 января 2015

Я тоже хотел это решение и спасибо @MikeSchinkle за оригинальное решение.Я использовал это, чтобы экспортировать эти ссылки в виде обычного текста, чтобы преуспеть, а затем создать свой список перенаправления.

Но потом я обнаружил, что мне также нужно решение с живыми, активными ссылками.

Таким образом, я использовал wp_query, используя тип записи "any", и создал шаблон страницы с формой поиска, включенной в следующий запрос (настройте по своему усмотрению).Обратите внимание, я должен был установить posts_per_page на -1, чтобы получить неограниченные результаты.Это возвращает результаты как: "Заголовок - Постоянная ссылка"

<?php 
        $type = 'any';
        $args = array (
         'post_type' => $type,
         'post_status' => 'publish',
         'posts_per_page' => -1,
          'order' => 'DESC',

        );
        $temp = $wp_query; // assign ordinal query to temp variable for later use  
        $wp_query = null;
        $wp_query = new WP_Query($args); 
        if ( $wp_query->have_posts() ) :
            while ( $wp_query->have_posts() ) : $wp_query->the_post();
            ?>

                <?php the_title(); ?> - <a href="<?php the_permalink() ?>" rel="bookmark" title="View The <?php the_title_attribute(); ?>"><?php the_permalink() ?></a><br />
<?php    endwhile; ?>
<?php else :
            echo '<h2>Sorry, we didnt find any results to match.  Please search again below or call us at 800-828-4228 and we will be happy to help!</h2>';
            get_search_form();
        endif;

  $wp_query = null; 
  $wp_query = $temp;  // Reset
?>

Надеюсь, что помогает другим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...