• 解決済 eijiy

    (@eijiy)


    WordPressテーマtwentytenを使っていますが、テーマフォルダに単にphpファイルを置いて以下の様にしても

    <?php
        $data = $_REQUEST['data'];
        $str = substr($data,35);
        $post_id = $str;
        $post = get_post($post_id);
        $content = $post->$post_content;
        $content = apply_filters('the_content',$content);
        echo ($content);
    ?>

    以下のエラーが表示されます。
    Fatal error: Call to undefined function get_post() in C:\xampp\htdocs2\wp\wp-content\themes\twentyten\ajaxpost.php on line 5
    なので、フォーラムで紹介されていたWordPressのタグを使える様にするおまじないのコードを以下の様に入れても

    <?php require(‘./wp-load.php’); ?>
    <?php
        $data = $_REQUEST['data'];
        $str = substr($data,35);
        $post_id = $str;
        $post = get_post($post_id);
        $content = $post->$post_content;
        $content = apply_filters('the_content',$content);
        echo ($content);
    ?>

    以下のエラーが表示されます。
    Parse error: syntax error, unexpected ‘/’ in C:\xampp\htdocs2\wp\wp-content\themes\twentyten\ajaxpost.php on line 1
    コードに問題があるのでしょうか。

    どなたかご教授頂けないでしょうか。

    宜しくお願い致します。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • <?php require(‘./wp-load.php’); ?>
    のクォーテーションが全角だから?とかですか?

    正しくは
    <?php require('./wp-load.php'); ?>

    ん~、何がしたいのでしょう?

    a.テーマフォルダにテーマ以外の独自phpファイルを作成し起動したい。
     →なんのため??テーマファイルを普通につくっちゃだめなの?

    b.テーマフォルダではないが、別の場所に独自phpファイルを作成しWordPressの関数を使いたい。
     →たまに見かけますが、この場合ちゃんとサーバールートからインクルードしないとだめ。(WordPressをルートにインストールしていて、そのルートに独自phpファイルを置いているわけじゃないよね?)

    質問をするなら、具体的に何をしたいのか提示したほうが的確な回答が望めます。
    遠まわしに情報を小出しにすると嫌がられますね;)

    トピック投稿者 eijiy

    (@eijiy)

    kvexさん、返信ありがとうございます。

    お恥ずかしい、しかし修正しても

    <?php require('./wp-load.php'); ?>
    <?php
        $data = $_REQUEST['data'];
        $str = substr($data,35);
        $post_id = $str;
        $post = get_post($post_id);
        $content = $post->$post_content;
        $content = apply_filters('the_content',$content);
        echo ($content);
    ?>

    以下のエラーが表示されます。
    Warning: require(./wp-load.php) [function.require]: failed to open stream: No such file or directory in C:\xampp\htdocs2\wp\wp-content\themes\twentyten\ajaxpost.php on line 1

    Fatal error: require() [function.require]: Failed opening required ‘./wp-load.php’ (include_path=’.;C:\xampp\php\PEAR’) in C:\xampp\htdocs2\wp\wp-content\themes\twentyten\ajaxpost.php on line 1

    パスが間違っているんでしょうか。

    トピック投稿者 eijiy

    (@eijiy)

    shokun0803さん、返信ありがとうございます。
    説明不足ですみません、気を付けます。

    具体的には、ページ送りのアンカータグがクリックされたらjQuery(Ajax)からGETでhrefの値(url)をphpに渡して、受け取ったphpで記事を取得して、jQueryで記事を#contentにhtmlで置き換えています。つまりページ送りをAjax化してみたいと言う事です。
    jQuery

    jQuery(function(){
    	var url = "http://127.0.0.1:8080/wp/wp-content/themes/twentyten/ajaxpost.php";
    	jQuery("#nav-above div a,#nav-below div a").click(function(e){
    		e.preventDefault();
    		jQuery.ajax({
    			type: "GET",
    			url: url,
    			data: {data: this.href},
    			success: function(ajaxpost,status){
    				jQuery("#content").html(ajaxpost);
    			}
    		});
            });
    });

    ajaxpost.php(テーマフォルダ内)

    <?php require('./wp-load.php'); ?>
    <?php
        $data = $_REQUEST['data'];
        $str = substr($data,35);
        $post_id = $str;
        $post = get_post($post_id);
        $content = $post->$post_content;
        $content = apply_filters('the_content',$content);
        echo ($content);
    ?>

    しかし以下のエラーが表示されます。
    Warning: require(./wp-load.php) [function.require]: failed to open stream: No such file or directory in C:\xampp\htdocs2\wp\wp-content\themes\twentyten\ajaxpost.php on line 1

    Fatal error: require() [function.require]: Failed opening required ‘./wp-load.php’ (include_path=’.;C:\xampp\php\PEAR’) in C:\xampp\htdocs2\wp\wp-content\themes\twentyten\ajaxpost.php on line 1

    なので、どこが悪いのか教えて頂けないでしょうか。

    ajaxpost.phpをwp-load.phpと同じディレクトリに置いてくださいね。

    トピック投稿者 eijiy

    (@eijiy)

    umbrella_processさん、返信ありがとうございます。

    ご指示どおりにしたところWordPressのタグが使える様になりました。
    jQuery

    jQuery(function(){
    	var url = "http://127.0.0.1:8080/wp/ajaxpost.php";
    	jQuery("#nav-above div a,#nav-below div a").click(function(e){
    		e.preventDefault();
    		jQuery.ajax({
    			type: "GET",
    			url: url,
    			data: {data: this.href},
    			success: function(ajaxpost,status){
    				jQuery("#content").html(ajaxpost);
    			}
    		});
    	});
    });

    ajaxpost.php

    <?php require('./wp-load.php'); ?>
    <?php
        $data = $_REQUEST['data'];
        $str = substr($data,35);
        $post_id = $str;
        $post = get_post($post_id);
        $content = $post->post_content;
        $content = apply_filters('the_content',$content);
        echo $content;
    ?>

    ありがとうございました。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「require(‘./wp-load.php’);の使い方を教えてください。」には新たに返信することはできません。