現在、WordPressのオリジナルのテーマを作成しています。
そのサイトでは php と jQuery を使って別のブログのRSSを読み込んでタイトルと日付を表示するようにしています。
jQuery だけではクロスドメインの問題があるため、phpの file_get_contents
で RSS の xml を読み込んで表示するファイルを作成しています。その後に jQuery からphpのファイルを読み込みんでタイトルと日付を表示するように記述しています。
下記のようにjQueryから同階層にある php のファイル index.php を読み込んでいます。
$(function() { $.ajax({ url: './index.php', xmlType: 'xml', success: function(xml) { var row = 0; var data = []; var nodeName; var output = $('#feeds'); // start item 成形 $(xml).find('item').each(function() { data[row] = {}; $(this).children().each(function() { nodeName = $(this)[0].nodeName; data[row][nodeName] = {}; attributes = $(this)[0].attributes; for (var i in attributes) { data[row][nodeName][attributes[i].name] = attributes[i].value; } data[row][nodeName]['text'] = $(this).text(); }); row++; }); // end item 成形 output.wrapInner('<ul></ul>'); count = 0; for (i in data) { // 投稿日時を取得し、0000.00.00の形式に変更 var pdate = new Date(data[i].pubDate.text); var Y = pdate.getFullYear(); var m = pdate.getMonth() + 1; m = (m < 10)? "0" + m:m; // 月数字を2桁に var d = pdate.getDate(); d = (d < 10)? "0" + d:d; // 日数字を2桁に var date = Y + "." + m + "." + d; output.find('ul').append('<li><span>' + date + '</span><a href="' + data[i].link.text + '">' + data[i].title.text + '</a></li>'); // console.log (data[i]); if( count >= 4 ){ break; } count++; } } }); });
これをWordPressのテーマ化するために、themes フォルダ内に設置しました。
下記のように feed というフォルダ内に index.php と feed.js を設置しています。
feed.js から同階層にある index.php を上記のコードのように読み込んでいます。
themes ━ original-theme ┳ feed ┳ index.php ┃ ┗ feed.js ┣ index.php ┣ style.css ┗ ・・・・
テーマ内に設置すると上記の url: './index.php',
ではファイルが読み込めません。
php ファイルではないため、get_theme_file_uri
のようにパスの指定もできません。
上記のディレクトリ構成でも同階層の index.php を読み込む方法はあるのでしょうか?
それとも、feed フォルダはテーマ内ではなく、ルートディレクトリなど他の場所に移動しないといけないのでしょうか?
ご存じの方いれば、教えてください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/19 04:54
退会済みユーザー
2018/04/19 06:45