Экспорт списка красивых постоянных ссылок и заголовка сообщения
Ищите способ экспортировать список симпатичных постоянных ссылок в WordPress с соответствующим заголовком поста. Ищем фактическую структуру постоянных ссылок, а не короткую ссылку. Я полагаю, что если понадобится, я буду использовать короткую ссылку, но я предпочитаю полную постоянную ссылку.
3 ответа
Вот отдельный 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}";
}
Надеюсь это поможет.
-Майк
PS я использовал стандартный WordPress WP_Query()
но также включает закомментированный SQL на тот случай, если вы предпочитаете (или нуждаетесь) использовать его вместо этого.
Ответил сегодня на 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
Я также хотел это решение и спасибо @MikeSchinkle за оригинальное решение. Я использовал это, чтобы экспортировать эти ссылки в виде обычного текста, чтобы преуспеть, а затем создать свой список перенаправления.
Но потом я обнаружил, что мне тоже нужно решение с живыми, активными ссылками.
Так что я использовал wp_query
используя тип сообщения "любой" и создал шаблон страницы с формой поиска, включенной в следующий запрос (настройте по своему усмотрению тему). Примечание, я должен был установить 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
?>
Надеюсь, что это помогает другим.