tk5
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: the_excerpt() で表示される  nobita さま、
いけました!
ご教示いただいた方法で、問題が解決できました。
本当にありがとうございました。wp_html_excerpt(), strip_shortcodes() 勉強になりました。
$p = get_post(get_the_ID()); $content = strip_shortcodes( $p->post_content ); echo '<p>' .wp_html_excerpt($content,160,__('...', 'xxxx')) . '<span class="more"><a href="'.get_permalink() . '"> ( ' .__('more', 'xxxx') .' ) </a></span></p>';
popup さま
ご助言ありがとうございました。
私はまだあまり理解できていないので「問題報告」はできませんが、感謝です。フォーラム: 使い方全般
返信が含まれるトピック: the_excerpt() で表示される  nobita さま、
ご回答いただきありがとうございます。
ご教示いただいた方法が理解できていないのですが、以下のように試してみました。
1番目の方法
functions.phpadd_filter('get_the_excerpt', 'my_excerpt'); function my_excerpt( $content){ return trim( $content ," &nbsp;"); }
index.php には以下2つを試しました。
<?php echo '<p>' .get_the_excerpt() . '<span class="more"><a href="'.get_permalink(). '"> ( ' .__('more', 'xxxx').' ) </a></span></p>';
$my_excerpt = apply_filters('the_excerpt', get_the_excerpt()); <?php echo '<p>' .$my_excerpt . '<span class="more"><a href="'.get_permalink(). '"> ( ' .__('more', 'xxxx').' ) </a></span></p>';
どちらでも、抜粋に表示される「&nbs」や「&nb」はそのままでした。
2番目の方法
index.php に以下を記述してみました。$p = get_post(get_the_ID()); echo '<p>' .wp_html_excerpt($p->post_content,160,'...') . '<span class="more"><a href="'.get_permalink(). '"> ( ' .__('more', xxxx').' ) </a></span></p>';
この場合、抜粋の「&nbs」や「&nb」は表示されなくなりましたが、今度はキャプションのショートコードが表示されてしまいました。
試しに以下のようにしても同じでキャプションのショートコードが表示されてしまいました。
$p = get_post(get_the_ID()); $my_excerpt = apply_filters('the_excerpt', wp_html_excerpt($p->post_content,160,'...')); echo '<p>' .$my_excerpt . '<span class="more"><a href="'.get_permalink(). '"> ( ' .__('more', 'xxxx').' ) </a></span></p>';
おそらく正しく理解できていないのだと思います。。。
フォーラム: 使い方全般
返信が含まれるトピック: the_excerpt() で表示される  すみません。
&nbsp; をそのまま書いてしまいました。
ユーザーさんがブログを書くときにビジュアルモードで改行する際に「Enterキー」を押すと「&nbsp;」が挿入されてしまい、それが文字数としてカウントされていて、ちょうどその部分が最後(excerpt_mblength で設定した文字数)の場合にその一部が表示されてしまうのではと思っているのですが、何かいい方法はないかと思っています。
フォーラム: 使い方全般
返信が含まれるトピック: the_excerpt() で表示される  popup さま、
ご指摘ありがとうございます。
プラグインは以下のものを使っています。
Akismet
Contact Form 7
Really Simple CAPTCHA
Multi Device Switcher
WP Multibyte Patch私の書き方が悪かったと思います。ユーザーさんがブログを書くときにビジュアルモードで改行する際に「Enterキー」を押すと「 」が挿入されてしまい、それが文字数としてカウントされていて、ちょうどその部分が最後(excerpt_mblength で設定した文字数)の場合にその一部が表示されてしまうのではと思っているのですが、何かいい方法はないかと思っています。
フォーラム: 使い方全般
返信が含まれるトピック: 投稿に挿入した画像(メディア)の情報の取得フォーラム: 使い方全般
返信が含まれるトピック: 投稿に挿入した画像(メディア)の情報の取得hissy 様、gogoweb 様、
貴重なご回答ありがとうございました。
おかげさまでやりたかったことが以下のような方法で可能となりました。
感謝しています。functions.php に以下を記述
function getPostImages($mypost){ if(empty($mypost)){ return(null); } if(preg_match_all('/<a [^>]*"(http:[^">]*\/wp-content\/uploads\/[^">]*)"[^>]*>/u',$mypost->post_content,$img_array)){ $resultArray = $img_array[1]; } return($resultArray); }
テンプレートに以下を記述
$postImages = getPostImages($post); if($postImages != null) { echo "<ol>\n"; for($i = 0; $i<count($postImages);$i++){ $img_src = trim($postImages[$i]); list($width, $height, $type, $attr) = getimagesize($img_src); echo '<li><span class="img_src">'. $img_src .'</span> '; echo '<span class="img_width">'. $width .'</span> '; echo '<span class="img_height">'.$height .'</span></li>'."\n" ; } echo "</ol>\n"; }
大変助かりました。
フォーラム: 使い方全般
返信が含まれるトピック: 投稿に挿入した画像(メディア)の情報の取得gogoweb 様
早速のご回答ありがとうございます。また、説明不足ですみません。
記事に関連付けられた画像ではなく記事内に表示されている画像を取得したいということでしょうか?
はい。
過去にアップロードした画像などを「メディアを追加」で投稿に挿入して、get_posts を使って「’post_parent’」を「$post->ID」とするとその画像の情報(幅と高さ)が取得できないので困っています。(この場合の「過去にアップロードした画像」は記事に関連付けられていないということになるのだと勝手に解釈しています)
その投稿に対してアップロードした画像の情報は前述の方法で問題なく取得できています。
必要な情報は過去にアップロードした画像のフルサイズの「幅」と「高さ」で、これはコンテンツに出力されていないのでどうしたらいいかと悩んでいます。
出力されている内容は以下のようなものです。
<a href="http://xxxx/wp/wp-content/uploads/2013/09/phplist13.png"> <img class="alignnone size-medium wp-image-265" width="300" height="258" alt="phplist13" src="http://xxxx/wp/wp-content/uploads/2013/09/phplist13-300x258.png"> </a>
a 要素の「href」にフルサイズの画像のパスがあるのですが、フルサイズの「幅」と「高さ」は出力されていません。このパスを元にnew Image()でイメージオブジェクトを生成し、それに対して src (パス)を設定して高さと幅を取得することを試したのですが、時々サイズが「0」となってしまいうまく行きませんでした。(2回目のクリックでは本来のサイズが取得できるのですが。。。)
「preg_match_all」は今まで使ったことがありませんでした。大変参考になりました。
ありがとうございます。フォーラム: その他
返信が含まれるトピック: フォーラムへの投稿がログインしていないと表示されないフォーラム: インストール
返信が含まれるトピック: wp-config.php のパーミッションが 640 に戻ってしまう久保 綾様
ありがとうございます。
せっかくレスポンスをいただいたのに遅くなってしまいました。
(すぐに投稿したのですが、サービス名にホスティングのリンクを張ったところ、自分でログインしないと表示されないみたいです。)>> ホスティングサービス名:inMotion は変ですね。すみません。
ホスティング会社:inMotion hosting
サービス名:Business Class Hosting
です。>>.htaccess の中身が書き換えられるというような事は同時に発生していないですよね?
書き換えられてはいないようです。(内容及び最終変更日より推測)フォーラム: インストール
返信が含まれるトピック: wp-config.php のパーミッションが 640 に戻ってしまう久保 綾様
ありがとうございます。
>> ホスティングサービス名:inMotion は変ですね。すみません。ホスティング会社:inMotion hosting
サービス名:Business Class Hosting
です。>>.htaccess の中身が書き換えられるというような事は同時に発生していないですよね?
書き換えられてはいないようです。(内容及び最終変更日より推測)フォーラム: インストール
返信が含まれるトピック: wp-config.php のパーミッションが 640 に戻ってしまう関係するかはわかりませんが、以下追加情報です。
wp-config.php ではデータベースの情報や認証用ユニークキーの値は別ファイルにして「require ‘/home/xxxxx/.htpasswds/public_html/xxxx/xxxx_vars.php’;」のようにして読み込むようにしています。
.htaccess ではログインファイル及び wp-admin ディレクトリに対してベーシック認証をかけ、また、それらに対する POST リクエストは自分のドメインからのみを受け付けるようにしています。
フォーラム: インストール
返信が含まれるトピック: wp-config.php のパーミッションが 640 に戻ってしまうnekomimiTaicho 様、
ご指摘いただきありがとうございます。また説明不足で申し訳ございません。
インストールしたのは、ホスティングプロバイダ(レンタルサーバー)で、共用サーバーになります。
ホスティングサービス名:inMotion
ウェブサーバーOS:Unix
ウェブサーバーソフトウェア: Apache
WordPress のバージョン: 3.6
WP のインストール場所:public_html から2階層下のサブディレクトリのサイト、及び public_html のルート(2つのサイトで同じ現象です)
wp-config.php の場所: 1つは WP をインストールしたディレクトリ、もう1つはインストールしたディレクトリ の1階層上(public_html と同じ階層)
共通するプラグイン:Akismet, Contact form7, Really Simple CAPTCHA, WP Multibyte Patch
その他のプラグイン:Multi Device Switcher,WordPress Backup to Dropbox,UpdraftPlus, WP Emmetwp-config.php のパーミッションは変更可能で、400 に変更後(変更してしばらくは400になっている)、翌日見てみると 640 に戻っています。
ホスティングプロバイダ(レンタルサーバー)に問い合わせたところ、「WordPress 自身またはプラグインがアップデートする際に変更される可能性がある」とのことでした。
よろしくお願いします。
フォーラム: マルチサイト
返信が含まれるトピック: マルチサイトでのベーシック認証の利用解決済みにします。
フォーラム: マルチサイト
返信が含まれるトピック: マルチサイトでのベーシック認証の利用いろいろと途中経過は省略しますが、以下の2行を .htaccess に追加することで解決しましたので報告します。
ErrorDocument 401 "Denied" ErrorDocument 403 "Denied"
結果的には、現在使用しているホスティングのサーバー上にサブドメインを作成している場合に上記のような現象が発生していたことになります。
フォーラム: マルチサイト
返信が含まれるトピック: マルチサイトでのベーシック認証の利用取りあえず、以下を functions.php に記述するとログインにベーシック認証を利用できるようになりましたが、なぜ、.htaccess を使ってのベーシック認証では、サーバー環境で「このウェブページにはリダイレクト ループが含まれています」となってしまうのかはまだわかりません。どなたか、お分かりになれば教えていただければありがたいです。
add_action( 'login_init', 'basic_auth' ); function auth_login_init() { if ( ! is_user_logged_in() ) { basic_auth(); } } function basic_auth(){ $hashed_user = "B.7zvNlp.z/Pxy"; //暗号化されたユーザー名 $hashed_password = "10Lh53LdzKN1KZ"; //暗号化されたパスワード if (isset($_SERVER['PHP_AUTH_USER']) and isset($_SERVER['PHP_AUTH_PW'])){ if (crypt($_SERVER['PHP_AUTH_USER'], $hashed_user) == $hashed_user && crypt($_SERVER['PHP_AUTH_PW'], $hashed_password) == $hashed_password){ return; } } header('WWW-Authenticate: Basic realm="Restricted Area"'); header('HTTP/1.0 401 Unauthorized'); header('Content-type: text/html; charset='.mb_internal_encoding()); die("Authorization Failed. Contact your administrator." ); }
上記の関数「basic_auth()」をプラグイン WP Basic Auth の中の関数「basic_auth()」で置き換えると、WordPress のユーザー名とパスワードを利用することができました。但し、あまりセキュリティについての理解がないので、それで安全かどうか(上記のコードも含めて)わかりません。