eijiy
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: AjaxなWPで表示中の単一記事のIDを元にページ送りkzさん、返信ありがとうございます。
いいえ、それでは表示されません。
single.php
<div class="nav-below"> <span class="nav-previous"><?php previous_post_link('%link', '古い記事へ'); ?></span> <span class="nav-next"><?php next_post_link('%link', '新しい記事へ'); ?></span> </div><!-- /.nav-below -->上記の様になっていますが、クリックされたアンカーリンクに含まれるhash(#記事のID)をjQueryからpage-test.phpに渡して、そこで#contentsの内容を生成してjQueryで表示させているので、自力でページ送りを作成するしかないと思っています。
間違っていたらご指摘ください。
宜しくお願い致します。
フォーラム: 使い方全般
返信が含まれるトピック: get_termsで表示したリストの上にArrayが表示されるshokun0803さん、つまらない事に時間を取らせて申し訳ありません。
有難うございました。
フォーラム: 使い方全般
返信が含まれるトピック: WordPressのurlの最後に「#~」を追加出来ないでしょうか。wpmubp.orgさん、返信ありがとうございます。
そうですね、例えば以下の様に連番を振るとか、あるいは「#id」を付けるなどでしょうか。
<?php $data = $_REQUEST['data']; $catid = get_category_by_slug($data)->term_id; $single_posts = get_posts( "numberposts=-1&category=$catid&order=desc" ); $c=0; ?> <ul> <?php foreach ( $single_posts as $post ) : ?> <?php ++$c; ?> <li><a href="<?php the_permalink() ?><?php echo '#'.$c ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> </ul>しかし、肝心な事を忘れていました。
非同期通信後では、上記の連番がアドレスバーに表示されず意味をなさないと言う事です。ページを読み込む直前になんとか出来るのかどうか分りませんが、当分眠れない日々が続きそうです。
フォーラム: 使い方全般
返信が含まれるトピック: ページ送りのurlを取得して、ある特定のカテゴリに属する記事か判定修正
<?php $prev = get_previous_post(); $next = get_next_post(); ?> <div id="nav-above" class="navigation"> <?php if ( $prev ) : $prev_cats = (array) wp_get_post_categories( $prev->ID ); if ( in_array( 13, $prev_cats) ) : echo '<div class="nav-previous_cancel">'; else : echo '<div class="nav-previous">'; endif; previous_post_link( '%link', '<span class="meta-nav">' . _x( '←', 'Previous post link', 'twentyten' ) . '</span> %title' ); echo '</div>'; endif; if ( $next ) : $next_cats = (array) wp_get_post_categories( $next->ID ); if ( in_array( 13, $next_cats) ) : echo '<div class="nav-next_cancel">'; else : echo '<div class="nav-next">'; endif; next_post_link( '%link', '%title <span class="meta-nav">' . _x( '→', 'Next post link', 'twentyten' ) . '</span>' ); echo '</div>'; endif; ?> </div><!-- end nav-above -->フォーラム: 使い方全般
返信が含まれるトピック: ページ送りのurlを取得して、ある特定のカテゴリに属する記事か判定kzさん、返信ありがとうございます。
解説書を見ても検索しても分からず諦めようとしていたところで、感謝!感謝!です。
以下の様にして、ページ送りの部分でクラス分けが出来ました。<?php $prev = get_previous_post(); $next = get_next_post(); if ( $prev ) $prev_cats = (array) wp_get_post_categories( $prev->ID ); if ( $next ) $next_cats = (array) wp_get_post_categories( $next->ID ); echo '<div id="nav-above" class="navigation">'; if ( in_array( 13, $prev_cats) ) { echo '<div class="nav-previous">'; } else { echo '<div class="nav-previous_ajax">'; } previous_post_link( '%link', '<span class="meta-nav">' . _x( '←', 'Previous post link', 'twentyten' ) . '</span> %title' ); echo '</div>'; if ( in_array( 13, $next_cats) ) { echo '<div class="nav-next">'; } else { echo '<div class="nav-next_ajax">'; } next_post_link( '%link', '%title <span class="meta-nav">' . _x( '→', 'Next post link', 'twentyten' ) . '</span>' ); echo '</div></div>'; ?>本来はJavaScriptでSyntaxHighlighterを再起動すべきところなんでしょうが、そちらも初心者でままなりません。
しかし条件分岐で良い勉強になり有難うございました。
フォーラム: 使い方全般
返信が含まれるトピック: ページ送りのurlを取得して、ある特定のカテゴリに属する記事か判定上記を踏まえて調べた結果、
get_previous_posts_linkとget_next_posts_linkで前と次のページの情報を取得出来る事がわかったので、以下の様にsingle.phpのループ内でテストしてみたんですが、反応はありませんでした。<?php $prev = get_previous_posts_link(); $next = get_next_posts_link(); $prevStr = substr($prev,25,9); $nextStr = substr($next,25,9); if ($prevStr == 'wordpress') { echo $prevStr; } else if ($nextStr == 'wordpress') { echo $nextStr; } ?>これは取得した情報の中にurl以外も含まれているからだと思うのですが、そうだとすればurlのカテゴリー名の部分だけ取り出すにはどうしたらいいでしょうか。
どなたかご教授下さい。
宜しくお願い致します。
フォーラム: 使い方全般
返信が含まれるトピック: require(‘./wp-load.php’);の使い方を教えてください。umbrella_processさん、返信ありがとうございます。
ご指示どおりにしたところWordPressのタグが使える様になりました。
jQueryjQuery(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; ?>ありがとうございました。
フォーラム: 使い方全般
返信が含まれるトピック: require(‘./wp-load.php’);の使い方を教えてください。shokun0803さん、返信ありがとうございます。
説明不足ですみません、気を付けます。具体的には、ページ送りのアンカータグがクリックされたらjQuery(Ajax)からGETでhrefの値(url)をphpに渡して、受け取ったphpで記事を取得して、jQueryで記事を#contentにhtmlで置き換えています。つまりページ送りをAjax化してみたいと言う事です。
jQueryjQuery(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 1Fatal 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
なので、どこが悪いのか教えて頂けないでしょうか。
フォーラム: 使い方全般
返信が含まれるトピック: require(‘./wp-load.php’);の使い方を教えてください。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 1Fatal 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
パスが間違っているんでしょうか。
フォーラム: プラグイン
返信が含まれるトピック: Ajax非同期通信でSyntaxHighlighterが機能しないフォーラム: プラグイン
返信が含まれるトピック: Ajax非同期通信でSyntaxHighlighterが機能しない折角教えて頂いたんですが駄目でした。
jQuery(function(){ jQuery("#nav-above div a,#nav-below div a").live('click',function(e){ e.preventDefault(); //if ( !jQuery(this).filter('[href*=wordpress]').length ){ var link = jQuery(this).attr("href"); jQuery("#container").load(link+' #content',function(){ SyntaxHighlighter.all(); }); //} }); });やっぱり難しいです。
余談ですが、Ajax化されたテーマってないんでしょうか。SyntaxHighlighterは外せないので困りました。
ここで具体的なコードを提示して欲しいとまでは言いませんが、これは何とかなると思われますか?可能性があれば追い続けてみたいと思います。フォーラム: プラグイン
返信が含まれるトピック: Ajax非同期通信でSyntaxHighlighterが機能しないumbrella_processさん、返信ありがとうございます。
Ajax非同期通信は、コリスで紹介されていた簡単なjQueryのコードを採用しています。
jQuery(function(){ jQuery("#nav-above div a,#nav-below div a").live('click',function(e){ e.preventDefault(); if ( !jQuery(this).filter('[href*=wordpress]').length ){ var link = jQuery(this).attr("href"); jQuery("#container").load(link+' #content'); } }); });if文は、取り敢えずSyntaxHighlighterを使っている記事があるカテゴリーを除外する為に追加しました。その為そのカテゴリーの記事はページ送りが出来なくなっています。
それで「SyntaxHighlighter.all();を再度起動する必要がある」と言う事ですが、どうしたらいいのでしょうか。宜しかったらご教授ください。
フォーラム: 使い方全般
返信が含まれるトピック: single.phpでis_categoryは使えないのでしょうか。LVP8さん、返信ありがとうございます。
解決しました。
SyntaxHighlighter Evolvedの件は改めて質問します。有難うございました。
フォーラム: 使い方全般
返信が含まれるトピック: single.phpでis_categoryは使えないのでしょうか。LVP8さん、返信ありがとうございます。
解決しました。
SyntaxHighlighter Evolvedの件は改めて質問します。有難うございました。
フォーラム: 使い方全般
返信が含まれるトピック: PHPで条件分岐して、カテゴリーリストをecho($data)ご指導いただいた、test.phpに<?php require(‘./wp-load.php’); ?>を入れる方法では、上記の様にエラーが出て、WordPressのタグが使えなかったので、別の方法を考えました。
それは、test.phpの名前をpage-test.phpとし、新規に空のページを作成して、パーマリンクをtestとする事により、url(“/wp/test”)でpage-test.phpにアクセス出来、WordPressのタグも使えるので、後はpage-test.phpでjqueryから受け取った情報を元に条件分岐してタグを使うと言った具合です。
皆さんのご協力に報いる事が出来ませんでしたが、これで解決とさせて頂きます。
ありがとうございました。