No.3857, No.3856, No.3855, No.3854, No.3853, No.3852, No.3851[7件]
ご回答ありがとうございます!
対処法について、確認させていただきました。
JavaScript変数で記述する方法を試してみます。
お早いご返信、誠にありがとうございました!
🍧Re:3854◆下記のⒶではなくⒷの順序で書くと、少なくとも引用符内が『半角スペースで終わる』ことは避けられます。
- Ⓐ<div class="onelogbox [[CATEGORYIDS:IFEMPTY:hogehoge]] [[POSTSTATUS]]">
- Ⓑ<div class="onelogbox [[POSTSTATUS]] [[CATEGORYIDS:IFEMPTY:hogehoge]]">
この半角スペースは、てがろぐが生成しているわけではなく、スキンHTMLソースに直接書かれているものですから、てがろぐ側ではどうにもできないのです。HTMLの文法的には半角スペースがいくつ入っていても問題はないので、そのままお使い頂けば良いと思うのですが、どうしても気になる場合は、以下の対処法もあります。
- let pstatus = "[[POSTSTATUS]]"; のようにJavaScriptで変数に入れてから、値がある場合だけclass属性値に合成するようスクリプトを書く。
- <div class="onelogbox"><div class="[[CATEGORYIDS:IFEMPTY:hogehoge]]"><div class="[[POSTSTATUS]]"> のように、div要素を分割する。
🍧Re:3855◆有用なTipsをどうもありがとうございます!
投稿記事の単独表示時にページタイトル(title要素、htmlのtitleタグの中身)へ記事タイトルや投稿本文の一部を入れる方法は以前>>3293さんがjQueryで実現されてましたが、自サイト用にjQueryを使わないJavaScriptで同じようなものを作ったのでお裾分けします。
外側スキンhtmlの最後の方にある遅延読み込みスクリプト群に下記ソースを貼り付けるか、<script>~</script>の中身だけをjsファイルとして保存して遅延読み込みスクリプト群の所から呼び出せば動くはずです。
私のサイトおよびローカル環境の公式スキンで動作確認済みですが、書き方が間違ってる等のツッコミがありましたらお教え下さると幸いです。
ブログタイプスキン向け(本文1行目をタイトルとして入力している、[[COMMENT:TITLE]]系の記法を使っているという環境向け)
<script>畳む
window.addEventListener('load', function() {
let nowurl = location.href; //現在のURL
let singleurl = nowurl.indexOf('postid='); //記事単独表示かをURL内からpostid=の有無で判別
//postid=がURLに含まれる場合のみ実行
if( singleurl != -1){
let Basetitle = document.title; //元のページタイトルを変数に入れておく
let ArticleTitleget = document.querySelector('.logtitle'); //logtitleクラスのhtml要素を取得
let ArticleTitle = ArticleTitleget.innerText; //logtitleクラスのテキストだけ取得
document.title = Basetitle + ' - ' + ArticleTitle; //ページタイトルを元のタイトル、半角スペースとハイフン、記事タイトルを連結させたものにする
}
});
</script>
標準スキンや昔のツイッターっぽいスキンなど、ブログタイプ以外のスキン向け(Twitterのように、投稿本文の冒頭部分から指定文字数をtitle要素に入れる)
<script>畳む
window.addEventListener('load', function() {
let nowurl = location.href; //現在のURL
let singleurl = nowurl.indexOf('postid='); //記事単独表示かをURL内からpostid=の有無で判別
//postid=がURLに含まれる場合のみ実行
if( singleurl != -1){
let Basetitle = document.title; //元のページタイトルを変数に入れておく
let ArticleTitleget = document.querySelector('.comment'); //commentクラスのhtml要素を取得
let ArticleTitle1 = ArticleTitleget.innerText; //commentクラスのテキストだけ取得
let textcount = 30; //ここで本文から切り出す文字数を指定
let ArticleTitle = ArticleTitle1.substring(0, textcount); //0の部分を変えると切り出し開始位置を変更可能
document.title = Basetitle + ' - ' + ArticleTitle; //ページタイトルを元のタイトル、半角スペースとハイフン、記事タイトルを連結させたものにする
}
});
</script>
document.querySelector('.●●●')の部分はhtml内のクラス名であれば何でも指定できます。
たとえば私のサイトの場合、投稿記事本文の1行目じゃない部分に強調装飾記法をつけて記事タイトル代わりの表示をしているのですが、decorationEクラスを指定すれば本文内の位置に関係なく強調装飾している部分だけがページタイトルに入ります。(1記事内に1回以上強調装飾を使っていないという条件はつきますが…。)
早速のご回答、ありがとうございます!
塩分補給は大事ですが、塩分過多も心配ですね。ご自愛ください。
記述を変更しましたところ、無事にclassに反映されました!
スキンカスタムの自由度が上がって嬉しく思います。
ただ、残念ながら空白スペースは残ってしまいました。。
<div class="onelogbox [[CATEGORYIDS:IFEMPTY:hogehoge]] [[POSTSTATUS]]" id="pos[[LOOPCOUNT]]">
先程の投稿の記述例とclassの順序は、半角スペース位置がわかりやすいかと思い変更しております。
<div class="onelogbox hogehoge " id="pos1">
となります。
これは「機能」のclassが生成されないから、という理由はわかるのですが、方法はございますでしょうか?
🍬Re:3852◆てがろぐをご活用下さってありがとうございます。(╹◡╹)ノ その場合は、
- [[CATEGORYIDS]] の代わりに
- [[CATEGORYIDS:IFEMPTY:hogehoge]] を使って頂くと
※hogehoge の部分には、何でもお好きな文字列を入れてお使い頂けます。例えば no-cats など分かりやすい文字列を出力なさると良いのではないかと思います。
カテゴリのclass読み込みについて質問失礼いたします。
1投稿ごとのボックスのdivにカテゴリclassを追加したいと考えております。
通常のスキンですと以下の通りとなっている部分ですが、
<div class="onelogbox [[POSTSTATUS]]" id="pos[[LOOPCOUNT]]">
このように変更することで、カテゴリIDをclassとして表示することができました。
<div class="onelogbox [[POSTSTATUS]] [[CATEGORYIDS]]" id="pos[[LOOPCOUNT]]">
ですが、未分類カテゴリはclassが生成されず、空白のままとなります。
未分類カテゴリのIDを設定できる箇所はございますか?
見落としがあったなら申し訳ございません。
また、生成後のclass表示の際、なにか機能を含めた場合、こうなると思いますが、
<div class="onelogbox logstatus-fixed categoryID" id="pos1">
カテゴリID・機能がない場合、半角スペースが残ったままになります。
<div class="onelogbox " id="pos1">
表示としては問題ないかと思いますが、記述スタイルとしては少々気になる部分でして、
なにか対処法はございますでしょうか?
大変お手数ですが、お手すきの際にご確認いただけますと幸いです。
何卒よろしくお願いいたします。