質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Q&A

解決済

1回答

3644閲覧

WordPressのプラグイン「WP Browsing History」にて表示される記事と表示されない記事がある。

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

0グッド

0クリップ

投稿2016/09/01 07:39

編集2016/09/03 06:58

###前提・実現したいこと
WordPressのプラグイン「WP Browsing History」を使って、ユーザーが商品ページや、ニュースページ、固定ページなどアクセスした際に、閲覧履歴を表示させたいです。
また、閲覧履歴にアクセスしたページのアドレスと一緒に、商品ページのアイキャッチ画像も取得し、表示させたいです。色々調べましたが、同じような質問が見つからなかったため、質問させていただきました。

###発生している問題・エラーメッセージ
現状で閲覧履歴の表示、一部ページのみ反映はされている。
固定ページ、商品ページは、時間取得は反映されるが、タイトルがundefinedとなり、URLもhttp://www.example/undefinedとなってしまう。

商品ページ・固定ページのみ反映されない。
イメージ説明

###ページの構造
イメージ説明

イメージ説明

###参考サイト:下記サイトのまま入力・修正等行っています。
http://did2memo.net/2014/08/19/wp-browsing-history/#i-7

###閲覧履歴を表示するためのコード

<?php if ( function_exists( 'wp_browsing_history_list' ) ) wp_browsing_history_list(); ?>

###CSS

<div class="wp-browsing-history"> <h2 class="history-header">閲覧履歴</h2> <ol class="history-list"> <li class="history-record history-record-1"> <span class="history-title"> <a href="http://..../" class="history-link"> 記事タイトル </a> </span> <span class="history-date"> (2014/01/01 00:00:00) </span> </li> <li class="history-record history-record-2"> ... </li> ... <li class="history-record history-record-5"> ... </li> </ol> </div>

###設定

const WPBH_COOKIE_NAME_HISTORY = "browsing_history"; const WPBH_COOKIE_VERSION = "1.0.0"; const WPBH_MAX_HISTORY_LENGTH = 5; const WPBH_ENABLE_HEADING = true; const WPBH_HEADING_TEXT = "閲覧履歴" const WPBH_ENABLE_DATE = true; const WPBH_ENABLE_DATE_BR = true;

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2016/09/02 15:40

反映されているのはデフォルトの「投稿」でしょうか。それ以外はカスタム投稿タイプでしょうか。
退会済みユーザー

退会済みユーザー

2016/09/02 23:25

反映されているのはおそらくカスタム投稿だと思われます。 デフォルトの「投稿」、カスタム投稿タイプの判断する方法が分からなかったため、functions.phpに //カスタムポストタイプ 新着情報とありましたので、 おそらくカスタム投稿ではないかと判断しました。
guest

回答1

0

ベストアンサー

「wp-browsing-history-logging.js」のコードを確認したところ、「投稿」以外でこのコードを読み込んだ場合書いておられる状況になると思われます。どこかのタイミングで投稿ページ以外で「wp-browsing-history-logging.js」を読み込んだことがあるのではないでしょうか。

下記コードでカスタム投稿タイプや固定ページにもログのためのコードを追加できるようになると思いますが、「wp-browsing-history-logging.js」を読み込んでしまう状況がわからないため、また undefined がでる可能性はあります。その場合は「wp-browsing-history-display.js」を一部書き換えることになると思います。

PHP

1// functions.php に書く 2function my_wp_browsing_history_variables_injection( $content ) { 3 global $post; 4 if ( is_singular() && !is_attachment() && !is_single() ) { 5 setup_postdata( $post ); 6 $content .= '<div id="wp-browsing-history-title" style="display:none;">' . get_the_title() . '</div>'; 7 $content .= '<div id="wp-browsing-history-url" style="display:none;">' . get_permalink( $post->ID ) . '</div>'; 8 } 9 return $content; 10} 11add_action( 'the_content', 'my_wp_browsing_history_variables_injection' ); 12function my_wp_browsing_history_script() { 13 $prefix = ""; 14 if ( @file_exists ( TEMPLATEPATH . '/wp-browsing-history-variables.js' ) ) { 15 $prefix = '-in-template'; 16 } 17 if ( is_singular() && !is_attachment() && !is_single() ) { 18 wp_enqueue_script( 19 'wp-browsing-history-logging', 20 plugins_url( '/wp-browsing-history-logging.js', __FILE__ ), 21 array ( 'jquery', 'wp-browsing-history-jquery-cookie', 'wp-browsing-history-variables' . $prefix , 'wp-browsing-history-display' ) 22 ); 23 } 24} 25add_action( 'wp_enqueue_scripts', 'my_wp_browsing_history_script' );

【wp-browsing-history/wp-browsing-history-logging.js at master ・ did2/wp-browsing-history ・ GitHub】
https://github.com/did2/wp-browsing-history/blob/master/wp-browsing-history-logging.js

投稿2016/09/03 01:55

kei344

総合スコア69364

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/09/03 04:41

返答ありがとうございます!!  実際にfunctions.phpに記述したのですが、 現象は変わらずundefinedが表示されてしまいました。
kei344

2016/09/03 04:44

一度登録されたcookieを削除してください。それか5ページ以上ページを移動してください。
退会済みユーザー

退会済みユーザー

2016/09/03 04:58

cookieの削除、5ページ以上の閲覧・移動を各ブラウザで行いましたが、同じ現象になってしまいました。
kei344

2016/09/03 05:04

記事のページ以外で「wp-browsing-history-logging.js」が読み込まれていないか、また記事のページで「<div id="wp-browsing-history-title" style="display:none;">」に正しくページタイトルが書いているかを確認してみてください。
退会済みユーザー

退会済みユーザー

2016/09/03 05:44

正しく表示されている方の記事ページには、「<div id="wp-browsing-history-title" style="display:none;">」に正しくページタイトルが書いてありましたが、表示されていない方には「<div id="wp-browsing-history-title" style="display:none;">」の記載がありませんでした!
kei344

2016/09/03 06:19

「表示されていない方」がどうやって作った何のページか、アーカイブなのか個別記事系なのか、まったくわかりません。特殊なテーマを使われている場合は内部で使用している setup_postdata( $post ); が正しく機能しない可能性もあります。 また、「wp-browsing-history-logging.js」が読み込まれていて、「<div id="wp-browsing-history-title" style="display:none;">」が無いページがどこかにあるのではないでしょうか。これが間違って読み込まれることがまず問題なので、それを解決されたほうが良いでしょう。 こちらの環境でテストしましたが、私が書いたコードはそもそも必要なく、カスタム投稿タイプでも問題なく使えました。(固定ページにも適用させたければ残しておけばいいと思いますが) 問題の特定が出来ないようであれば、あきらめて他の方法を探すのも手段です。
退会済みユーザー

退会済みユーザー

2016/09/03 07:08

説明が不十分だったため、画像を用いて再度追記致しました。 表示されているページは、画像の新着情報「投稿ページ」になります。 表示できていないページは、「カテゴリ別アーカイブページ」の商品ページになります。 テーマはオリジナルのテーマを使用しています。 説明不足、力量不足等にも関わらず色々とありがとうございました! 問題の特定を出来る限りやってみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問