Simplicityの特徴 › フォーラム › テーマファイルのカスタマイズに関する質問など › 投稿記事ページに「フロントページに戻る」をつけるには
- このトピックには7件の返信、2人の参加者があり、最後ににより1年、 7ヶ月前に更新されました。
-
投稿者投稿
-
-
2015年5月23日 11:34 AM #26930ぱぴりんこゲスト
こんにちは。
いつもお世話になっております。フォーラムを探したのですが見つけられなかったので教えてください。
投稿記事ページに「フロントページに戻る」をつけるには方法を教えていただけるとありがたいです。
現在、固定ページをフロントページに設定しています。
投稿記事ページの下部にある、「前の記事へ、次の記事へ」の下あたりに「ブログのフロントページに戻る」をつけたいと思っています。どうぞよろしくお願いいたします。
-
2015年5月23日 5:09 PM #26942hidekichiゲスト
俺ならこうするシリーズ
僕なら、また1からphpに追記するのが面倒なので(アップデートで消えるとアレですし)、子テーマあたりのjavascript.jsに、
(function($){ $(function(){ $(".navigation").after("<div class='backtotop'>何かしら文言</div>"); }); $('.backtotop').on("click",function(){ $('body,html').animate({scrollTop: 0}, 800); }); })(jQuery);
こんなふうに追記します。位置やらをデザインする場合は、親・子テーマのstyle.css(できれば子テーマ)に、
.backtotop { //デザインするプロパティ }
こんな感じでやればよいのではないかと思います。何かしらの原因でjavascript.jsが読み込まれなかった場合は表示されません。これがデメリットでしょうか。最速なのはサーバーで処理するPHPですけれども、ページの下の方に追記するわけですし多少遅くても問題ないかと思います。
今回はナビゲーションの下辺りと言うことだったので、$(“.navigation”)としていますが、どこにでも入れることが可能です。
.after()は、例えば今回の場合、.navigationのブロックの「後」に追記します。同じくして、$("#comment-area").before("<div class='backtotop'>何かしら文言</div>");
こうすればコメントエリアの「前」、つまりafter()の時と同じ位置に入れることが可能ですが、たぶん体感はできないだろうと思いますけど、$(“#comment-area”)の指定の方が速いだろうと思います。idは基本的にページにひとつだけで指定するので、jQueryはそっちから探すんです。class指定ながら.navigationもひとつしか無いだろうと思うので速度的にはあまり違いはないと思うんですが、こういう理由から「jQueryはidから先に探す」と覚えておけば良いと思います。
また、$(id)の子要素のclassを探す場合、$(id .class)と書きたい所ですが、$(id).find(.class)と言う指定の方が速いとか何とか。まぁ複数指定しない場合は、$(id .class)でも何ら問題ないんですけどね。 -
2015年5月23日 5:14 PM #26944わいひらキーマスター
pager-post-navi.phpかpager-post-navi-thumbnail.php(カスタマイザーの設定により異なる)の中身の下の方で、「ブログのフロントページに戻る」のリンクを挿入して、スタイルシートなどで、ちょっと装飾すればOKかと思います。
-
2015年5月24日 10:48 AM #26971ぱぴりんこゲスト
hidekichiさん わいひらさん、ご回答をありがとうございました。
とても丁寧に書いてくださり感謝です。
・・・
でも、すみません。
私のレベルには難しくて理解できませんでした。もっと簡単にできるかなと思っていたのです…お恥ずかしい
現在、Wordpressをカスタマイズできるように、いろいろ学習中ですが、まだ、JavaScriptとphpの学習まで進んでいなくています。
もっと簡単にできる方法があれば知りたいですが、たぶん教えてくださったことがかんたんな方なのだと思うので、今回はあきらめた方がいいのかな…と思いました。
お手数をかけさせ申し訳ありませんでした。
いつも丁寧な御対応をありがとうございました。
-
2015年5月24日 1:14 PM #26973hidekichiゲスト
まぁものは試しで、#26942のスクリプトを子テーマのjavascript.jsにまんま貼っつけてみてくだい。
と、言いながら、自分で試してないので動作するかはわからないんですけどね(笑)
で、先ほど一応試してみたら案の定間違いがありました(笑)(function($){ $(function(){ $(".navigation").after("<div class='backtotop'>何かしら文言</div>"); $('.backtotop').on("click",function(){ $('body,html').animate({scrollTop: 0}, 800); }); }); })(jQuery);
これで動作します。色々閉じカッコやらを間違えてました(笑)
サンプル動作: ここから何かしらの記事を見て下さい。コメント欄の手前に「何かしらの文言」ってのが入っててクリックしたらトップへ戻ると思います。cssは後回しでも大丈夫です。javascript.jsとありますが内容はjQueryです。これを貼っつけて画面上にどう出るか、また出たものをクリックしたらどうなるかってのは、本で勉強するよりも案外勉強になるもんですよ。
更に$(‘body,html’).animate({scrollTop: 0}, 800);の800って何だ?ちょっといじくってみようか・・・と言う好奇心が案外重要です。本に書いてあることは本で書いてあることまでしかできません。それを応用したり改造したりはプログラマーの頭の中にある動作に近づけるためです。
「それじゃないんだよ」ってスクリプトはたくさん世にあるわけですが、それを使ってちょいといじくったら、「これだよ、これ」って事になったりすることもあります。そういうのが本来の勉強だと思うんです。 -
2015年5月24日 2:41 PM #26979わいひらキーマスター
僕の書いた方法は、テンプレートファイルは編集しますがHTMLをかければできる方法です。ただ、無理と感じるようならやめておいたほうがいいかもしれません。
理解をしないうちに編集をすると、下手するとエラーが出てしまいますので。 -
2015年5月26日 9:41 AM #27049ぱぴりんこゲスト
hidekichiさん わいひらさん、ご回答をありがとうございます。
お礼が遅くなり申し訳ありません。
その後もご回答いただけているとは思わず、今朝お二人のご回答を拝読いたしました。まず、わいひらさんから教えていただいた方法で、フロントページに戻るを個別記事のコメント欄上部に挿入することができました!(嬉)
始めのわいひらさんのご回答を読んだときに、pager-post-navi.phpかpager-post-navi-thumbnail.phpにhidekichiさんが教えてくださったスクリプトを書けばいいのかな…なんて勘違いしていたのです。
それで、2回目のご回答でHTMLを書ければできる…というのを読み、「そうだったのかー!そういえばリンクを挿入って書いてあったじゃないの…」と。。。
それでHTMLでリンクを挿入したら、できたんです!!
ありがとうございました。そしてhidekichiさんが教えてくださったスクリプトの貼り付けも試してみました。
子テーマのjavascript.jsに貼り付けアップロードしたところ、出てきました・・・『何かしら文言』という表示が、コメント欄の手前に!
これができただけでも私には嬉しかったのですが、個別記事のトップへ戻るではなく、ブログのフロントページに戻れるようにしたかったんです。私の質問が解りにくくてゴメンナサイです。教えていただいた、blazechariot -Xdomain-も拝読しました。これから私がいろいろ勉強していこうと思っている内容がありました。まだまだ私には追い付けていないことが多いですが、理解できるようになりたいと思います。そして、hidekichiさんがおっしゃって下さっているように、スクリプトいじくったりしながら、覚えていきたいと思います。
今回も、助けていただきどうもありがとうございました。
感謝です。 -
2015年5月26日 1:50 PM #27055わいひらキーマスター
それでHTMLでリンクを挿入したら、できたんです!!
ありがとうございました。うまくいったようでよかったです!
丁寧な返信ありがとうございます。
-
-
投稿者投稿
- フォーラム「テーマファイルのカスタマイズに関する質問など」には新規投稿および返信を追加できません。