フォーラムへの返信

15件の返信を表示中 - 1 - 15件目 (全24件中)
  • フォーラム: 使い方全般
    返信が含まれるトピック: the_excerpt() で表示される &nbsp
    トピック投稿者 tk5

    (@tk5)

    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() で表示される &nbsp
    トピック投稿者 tk5

    (@tk5)

    nobita さま、

    ご回答いただきありがとうございます。

    ご教示いただいた方法が理解できていないのですが、以下のように試してみました。

    1番目の方法
    functions.php

    add_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
    トピック投稿者 tk5

    (@tk5)

    すみません。

    &nbsp; をそのまま書いてしまいました。

    ユーザーさんがブログを書くときにビジュアルモードで改行する際に「Enterキー」を押すと「&nbsp;」が挿入されてしまい、それが文字数としてカウントされていて、ちょうどその部分が最後(excerpt_mblength で設定した文字数)の場合にその一部が表示されてしまうのではと思っているのですが、何かいい方法はないかと思っています。

    フォーラム: 使い方全般
    返信が含まれるトピック: the_excerpt() で表示される &nbsp
    トピック投稿者 tk5

    (@tk5)

    popup さま、

    ご指摘ありがとうございます。

    プラグインは以下のものを使っています。

    Akismet
    Contact Form 7
    Really Simple CAPTCHA
    Multi Device Switcher
    WP Multibyte Patch

    私の書き方が悪かったと思います。ユーザーさんがブログを書くときにビジュアルモードで改行する際に「Enterキー」を押すと「 」が挿入されてしまい、それが文字数としてカウントされていて、ちょうどその部分が最後(excerpt_mblength で設定した文字数)の場合にその一部が表示されてしまうのではと思っているのですが、何かいい方法はないかと思っています。

    フォーラム: 使い方全般
    返信が含まれるトピック: 投稿に挿入した画像(メディア)の情報の取得
    トピック投稿者 tk5

    (@tk5)

    解決済みにするのを忘れていました。

    フォーラム: 使い方全般
    返信が含まれるトピック: 投稿に挿入した画像(メディア)の情報の取得
    トピック投稿者 tk5

    (@tk5)

    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";
    }

    大変助かりました。

    フォーラム: 使い方全般
    返信が含まれるトピック: 投稿に挿入した画像(メディア)の情報の取得
    トピック投稿者 tk5

    (@tk5)

    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」は今まで使ったことがありませんでした。大変参考になりました。
    ありがとうございます。

    トピック投稿者 tk5

    (@tk5)

    gatespace様

    ご対応いただきありがとうございました。

    トピック投稿者 tk5

    (@tk5)

    久保 綾様

    ありがとうございます。
    せっかくレスポンスをいただいたのに遅くなってしまいました。
    (すぐに投稿したのですが、サービス名にホスティングのリンクを張ったところ、自分でログインしないと表示されないみたいです。)

    >> ホスティングサービス名:inMotion は変ですね。すみません。

    ホスティング会社:inMotion hosting
    サービス名:Business Class Hosting
    です。

    >>.htaccess の中身が書き換えられるというような事は同時に発生していないですよね?
    書き換えられてはいないようです。(内容及び最終変更日より推測)

    トピック投稿者 tk5

    (@tk5)

    久保 綾様

    ありがとうございます。
    >> ホスティングサービス名:inMotion は変ですね。すみません。

    ホスティング会社:inMotion hosting
    サービス名:Business Class Hosting
    です。

    >>.htaccess の中身が書き換えられるというような事は同時に発生していないですよね?
    書き換えられてはいないようです。(内容及び最終変更日より推測)

    トピック投稿者 tk5

    (@tk5)

    関係するかはわかりませんが、以下追加情報です。

    wp-config.php ではデータベースの情報や認証用ユニークキーの値は別ファイルにして「require ‘/home/xxxxx/.htpasswds/public_html/xxxx/xxxx_vars.php’;」のようにして読み込むようにしています。

    .htaccess ではログインファイル及び wp-admin ディレクトリに対してベーシック認証をかけ、また、それらに対する POST リクエストは自分のドメインからのみを受け付けるようにしています。

    トピック投稿者 tk5

    (@tk5)

    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 Emmet

    wp-config.php のパーミッションは変更可能で、400 に変更後(変更してしばらくは400になっている)、翌日見てみると 640 に戻っています。

    ホスティングプロバイダ(レンタルサーバー)に問い合わせたところ、「WordPress 自身またはプラグインがアップデートする際に変更される可能性がある」とのことでした。

    よろしくお願いします。

    フォーラム: マルチサイト
    返信が含まれるトピック: マルチサイトでのベーシック認証の利用
    トピック投稿者 tk5

    (@tk5)

    解決済みにします。

    フォーラム: マルチサイト
    返信が含まれるトピック: マルチサイトでのベーシック認証の利用
    トピック投稿者 tk5

    (@tk5)

    いろいろと途中経過は省略しますが、以下の2行を .htaccess に追加することで解決しましたので報告します。

    ErrorDocument 401 "Denied"
    ErrorDocument 403 "Denied"

    結果的には、現在使用しているホスティングのサーバー上にサブドメインを作成している場合に上記のような現象が発生していたことになります。

    フォーラム: マルチサイト
    返信が含まれるトピック: マルチサイトでのベーシック認証の利用
    トピック投稿者 tk5

    (@tk5)

    取りあえず、以下を 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 のユーザー名とパスワードを利用することができました。但し、あまりセキュリティについての理解がないので、それで安全かどうか(上記のコードも含めて)わかりません。

15件の返信を表示中 - 1 - 15件目 (全24件中)