お世話になっております。
恐縮ながらSANGOでは、固定ページに子固定ページへのリンクが自動的に表示される仕様にはなっておらず・・・。
関連記事ショートコードを使って、子固定ページへのリンクを表示させるのが手軽かと思うのですが、いかがでしょうか。
そうなんですかー…。残念ですがわかりました!
代替提案ありがとうございます。ですが、イメージ的には自分で作った暫定仕様の方がイメージに近くできそうですので、それをもうちょっと頑張ってカスタマイズしてみます。
ひとつ問題が残っているので、引き続き質問いいですか?
投稿で紹介ページを作ると、ウィジェットの「人気の記事」の上位を、アクセスが集中しやすい「サイトの紹介ページ「」が占有してしまう可能性があり、そうなるとちょっと困ってしまいます。
特定の記事を、人気の記事の集計対象から除外する良い方法は何かありますでしょうか?
【2020/03/03 更新:最新バージョンに対応しました】
人気記事ウィジェットで一部の記事を計測から除外する方法ですが、子テーマにparts/single/entry-footer.php
を複製して(partsフォルダーを作り、その中にsingleフォルダーを作り、さらにその中にentry-footer.phpを作成します)
if( !is_bot() && !is_user_logged_in() ) {
sng_set_post_views(get_the_ID());
}
の部分を
if( !is_bot() && !is_user_logged_in() && !is_single('99')) {
sng_set_post_views(get_the_ID());
}
などと書き換えると、特定の記事をカウントから除外できます(99の数字のところを除外したい投稿のIDにします)。
今度こそできました!
大変助かりました。
ありがとうございます!!!m(_ _)m
勉強不足ですみませんでした。
サルワカさんのサイトと、おすすめの本で勉強するようにします!
度々すみません。
やってみたのですが、対象の記事がカウントから除外されない様で、再度教えてください。
まず、書き換える様ご教示下さったコードについてなのですが、元々footer.phpには無く、single.phpにありました。
footer.phpとsingle.php、両方を子テーマに複製し、片方づつコード追記と書き換えを試してみましたが、カウントが除外されないようなのです。
質問としては、下記の3点です。
・コードを書き込むファイルはfooterとsingleどちらでしょうか。
・コードを書き込む位置で気を付けるべきことはありますか。
・ほとんどコピペさせて頂いているので大丈夫かと思っているのですが、下記のコードに誤りはありますか?
if( !is_bot() && !is_user_logged_in() && !is_single(‘678’, ”687)) {
sng_set_post_views(get_the_ID());
}
よろしくお願いいたします。
わかりました!
これでイメージに近いサイトにできそうです。
ご丁寧にお教えくださりありがとうございました^^
こちらこそ誤った案内をしてしまい、すみませんでした。
なんにせよ、うまくいったようで安心しました!
【追記】最新バージョンではparts/single/entry-footer.php
にかかれています
申し訳ないです。single.phpが正しいです。footer.phpは誤りなので、該当のファイルもしくはコードは消していただくようお願いします。
(追記するとダブルカウントされるのでコードを修正してください)
コードに誤りありです。
ダブルクオテーションが閉じておりません。
また、複数指定するときには配列(array)にする必要があります(この記事を読めば分かると思います)。
なので
if( !is_bot() && !is_user_logged_in() && !is_single(array('678','687'))) {
sng_set_post_views(get_the_ID());
}
ですかね。
下記の回答を参考にしましたが、解決できません。
人気記事ウィジェットで一部の記事を計測から除外する方法
https://saruwakakun.com/sango/comments?id=2346#comment-2363
子テーマにparts/single/entry-footer.phpを複製して
if( !is_bot() && !is_user_logged_in() ) {
sng_set_post_views(get_the_ID());
}
の部分を
if( !is_bot() && !is_user_logged_in() && !is_single(‘8’)) {
sng_set_post_views(get_the_ID());
}
に変更しました。
除外されるまでには時間がかかるのでしょうか?
ご回答よろしくお願いいたします。
お世話になっております。
上記のページの方法では、計測を停止する形なので、すでにランキングに入るだけのPV数がある場合には除外されません。
次回のアップデート(おそらくSANGO v2.0.6)にて、以下のようなコードを子テーマのfunctions.phpに記入することで、ランキングから特定の記事を除外できるようにします。
function sng_get_popular_posts($num = 6) {
return get_posts(array(
'post_type' => 'any',
'numberposts' => $num,
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'exclude' => '15, 25' // ランキングから除外する投稿ID
));
}
↑いちばん下のexclude
の部分に除外する投稿IDを半角カンマ区切りで指定します。この例だとIDが「15」と「25」の投稿がランキングから除外されます。
v2.0.5以下をご利用の場合の対応方法
親テーマのlibrary
=> functions
=> widget-settings.php
を開きます。
150行目あたりに以下のようなコードがあると思います。
$posts = get_posts(array(
'post_type' => 'any',
'numberposts' => $entry_num,
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC',
));
ここに、以下のようにexcludeの行を追加します。
$posts = get_posts(array(
'post_type' => 'any',
'numberposts' => $entry_num,
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'exclude' => '15, 25' // ランキングから除外する投稿ID
));
なお、親テーマを直接編集するわけなので、次回のアップデートにて上書きされます。
その際には、上述のコードを子テーマのfunctions.phpに貼り付けていただければと思います。
よろしくお願いします。
丁寧にご解説いただきありがとうございました。
人気記事から除外することができました。
次回のアップデートでの記述のご説明も了解しました。
今後もSANGO長く利用させていただきます!
WordPressテーマSANGOの質問
人気記事ウィジェットで一部の記事を計測から除外する方
サルワカさんのおしゃれなサイトにあこがれて、lightningから移行しました!
早速ですみませんが教えて下さい。
今までは、サイトの紹介ページをターゲットごとに書き分けて、固定ページの親子機能を使って階層構造にして作成していたのですが、SANGOに切り替えてから親のページに子のページが表示されなくなってしまいました。
どのような設定をすれば、表示できますでしょうか?
よろしくお願いいたします。
↓当該のページです↓
https://trackonsnow.jp/introduction-of-this-website/
以前はこのページに子のページのリンクが3つ表示されていました。
今は暫定的に、投稿ページを使って階層構造にしていますが、
サイトの紹介が、人気記事ランキングに入ったりすると厄介なので、固定ページで作りたい、というのが主旨です。