広告

posted by fanblog

Wordpress Post/Page/Category/TagのURL一覧は結局自作しました

ワードプレスのサイトを引っ越しする、思い立ったのはいいんですが、面倒ですよね・・

特にマルチサイトとか立てたちゃっているサイトだと本当、面倒です。


引っ越し自体はたくさん参考になるサイトが見つかるので、ぜひググってください。

ワードプレス自体の引っ越しに関してはいろいろ情報はあります。
でも、
しっかり移行できたのか、
ちゃんとアクセスできるのか、
本当に正しく引っ越しできたのか?
といった移行の正しさを確認する方法が少なかったです。


ワードプレス => 別サーバーのワードプレスだから問題ないでしょ?

って思っていいんですかね・・・

石橋を叩いて渡る性格だと、なんか不安です・・・


がっちりテストケースを組んでやるほど余力もないので、チョー簡単に確認する手段を検討しました。

その方法とは、URLが移行前と、移行後が一致するかです。


同じワードプレス、MySQLを使って、引っ越ししているわけなので、基本記事が表示されるはずです。
データベースごとごっそり移行した場合、あまり神経質になる必要はないかと思います。



ワードプレスの基本機能にある、エクスポート、インポートを使う場合には、ワードプレス自体の設定も絡んでくるので確認したい項目ですね!



ワードプレスのプラグインでいいのがあったらと探したんですが、網羅されているURL一覧プラグインは見つかりませんでした。

もし、知っている方いたら、こっそりコメントいただけると嬉しかったりします^^
(コメントは承認制にしているので、すぐには反映されませんm(_ _)m )


プラグインを探して確認してみて、希望に合うものが見つからなかったので疲れたました。
そこで、探す時間がもったいなかったので、サクッと手抜きphpを作ることにしました。









Wordpress Post/Page/Category/TagのURL一覧のソースを公開


以下に示すソースは、phpのソースになります。

Wordpress Post/Page/Category/TagのURL一覧の適用手順


使いたい方は、以下手順でお願いします。
  1. 1) sshでログインして、対象ワードプレスのトップディレクトリ(wp-config.phpがあるところ)でvi checkurl.php(このファイル名は適当に変更してくださいね)、そのあとiキーを押下しておく


  2. 2) phpのソースをコピーして、checkurl.phpにペーストする、その後 :wqとキー入力する

  3. 3) 対象サイトのURL/checkurl.phpへchromeでアクセスする

これで固定ページの一覧、ポストしたページの一覧、カテゴリの一覧、タグの一覧、固定ページ中に含まれるURLの一覧、ポスト中に含まれるURLの一覧が列挙されます。

sshできない環境の人は、textファイルにコピペしてから、ftpでアップロードしてみてくださいね。

Wordpress Post/Page/Category/TagのURL一覧のソースコード


「===ここから===」から「===ここまで===」をコピーしてください。


===ここから===
<?php
require_once( dirname(__FILE__) . '/wp-load.php');
?>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<ul id="result">
</ul>
<div style="visibility:hidden" class="page">
<?php
$pages = get_pages();
foreach($pages as $page){
echo '<a href="' . get_page_link($page->ID) . '">' . $page->post_title . "</a>";
}
?>
</div>

<div style="visibility:hidden" class="page_inner">
<?php
foreach($pages as $page){
$content = $page->post_content;
if(!$content) continue;
echo apply_filters('the_content', $content);
}
?>
</div>
<div style="visibility:hidden" class="post">
<?php

$postslist = get_posts( );
foreach($postslist as $post ) {
setup_postdata($post);
?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?
}
wp_reset_postdata();

?>
</div>
<div style="visibility:hidden" class="post_inner">
<?php
setup_postdata($post);
var_dump($postslist);
?>
</div>
<div style="visibility:hidden" class="category">
<?php wp_list_categories(); ?>
</div>
<div style="visibility:hidden" class="tag">
<?php $tag = wp_tag_cloud( 'format=array' );
var_dump($tag);
?>
</div>

<script style="javascript">
function addURL( title, alist ){
var result = document.getElementById('result');
var li_t = document.createElement('li');
li_t.appendChild( document.createTextNode(title) );
result.appendChild(li_t);
var ul = document.createElement('ul');
alist.forEach( function(val, index, ar ){
var li = document.createElement('li');
li.appendChild(document.createTextNode(val.text + " " + val.href ));
ul.appendChild(li);
console.log(val);
} );
if( ul.childNodes.length != 0 ){
result.appendChild(ul);
}

}
var lst = document.querySelectorAll('.page a'); addURL('page', lst);
var lst = document.querySelectorAll('.post a'); addURL('post', lst);
var lst = document.querySelectorAll('.category a'); addURL('category', lst );
var lst = document.querySelectorAll('.tag a');addURL('tag', lst );
var lst = document.querySelectorAll('.page_inner a'); addURL('page inner', lst);
var lst = document.querySelectorAll('.post_inner a'); addURL('post inner', lst);
</script>
</body>
</html>
===ここまで===

ソースコードは以上です。解説が欲しい方は下記を参照してくださいね。


Wordpress Post/Page/Category/TagのURL一覧のソースコード解説


軽めに解説します。
ワードプレスの関数は、標準出力にそのまま出力してしまうものと、配列とかで操作できるものの2種類あります。

このうち、必要な情報を返してくれる関数は、上記2つのパターンでバラバラでした。


なので、PHPでごりごりやるのではなく、出力した結果をjavascriptでまとめる、という方式にしてあります。

ポイントの解説
  1. ポイント1)ワードプレスの関数をロードします=>require_once( dirname(__FILE__) . '/wp-load.php');


  2. ポイント2)ページURLの取得 => get_pages();
    get_page_link($page->ID)でページのURLを取得しているので安心です。


  3. ポイント3)ページの本文に含まれるURLの取得 =>$content = $page->post_content;
    そのままボディを出力しています。hiddenで非表示にしています、そのため表示されません。
    出力された本文からアンカーリンクをdocument.querySelectorAllでごっそり抜き出して一覧表示しています




ポスト、タグ、カテゴリーもほぼ同じような考えで作っています。

全部出力して、残しているので、トータルのページ数が多いとちょっと重いかもしれません。
適当に改善して使ってみてくださいね!









 

↓↓レンタルサーバーのオススメはコレ!↓↓

 

 

この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
http://fanblogs.jp/tb/5279174
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
最新記事
最新コメント
タグクラウド
カテゴリアーカイブ
×

この広告は30日以上新しい記事の更新がないブログに表示されております。