5661


Wordpressで自動生成されるコンテンツのURLをhttp://ドメイン 部分を表示させないように設定しています。  
ですが、SNSにシェアさせるURLまで相対パスで表示されてしまいます。

[code]

    <?php echo 'http://hogehoge.com' ?><?php the_permalink(); ?>
    
[/code]

上記のようにechoで出力させようとしても、ドメイン部分が取得されていません。  
特定した要素のみドメインを表示させる事は可能でしょうか？  
下記のコードがfunction.phpに記載しているドメイン非表示用のコードです。

[code]

    <?php
    class relative_URI {
        function relative_URI() {
            add_action('get_header', array(&$this, 'get_header'), 1);
            add_action('wp_footer', array(&$this, 'wp_footer'), 99999);
        }
        function replace_relative_URI($content) {
            $home_url = trailingslashit(get_home_url('/'));
            return str_replace($home_url, '/', $content);
        }
        function get_header(){
            ob_start(array(&$this, 'replace_relative_URI'));
        }
        function wp_footer(){
            ob_end_flush();
        }
    }
    new relative_URI();
    ?>
    
[/code]

よろしくお願いいたします。


CC BY-SA 3.0
2015-01-31T05:52:22.403
5651
2015-01-31T10:11:51.677
7887
question
php
ドメインを表示しない設定を残したまま特定の要素のみドメインを表示させたい


自力解決しましたので、ご報告いたします。

まず、function.phpに記載したコードはそのまま流用しました。

[code]

    <?php
    class relative_URI {
        function relative_URI() {
            add_action('get_header', array(&$this, 'get_header'), 1);
            add_action('wp_footer', array(&$this, 'wp_footer'), 99999);
        }
        function replace_relative_URI($content) {
            $home_url = trailingslashit(get_home_url('/'));
            return str_replace($home_url, '/', $content);
        }
        function get_header(){
            ob_start(array(&$this, 'replace_relative_URI'));
        }
        function wp_footer(){
            ob_end_flush();
        }
    }
    new relative_URI();
    ?>
    
[/code]

データ出力部に記載してあったコード

[code]

    <?php echo 'http://hogehoge.com' ?><?php the_permalink(); ?>
    
[/code]

をURLエンコードを使用し、以下のように変更しました。

[code]

    http%3a%2f%2fhogehoge%2ecom<?php the_permalink(); ?>
    
[/code]

このようにすれば、function.phpに記載したプログラムを使用したまま、特定のコンテンツにドメインを表示させることができました。

上記の方法より効率的な方法などございましたら、ご教授いただけると幸いでございます。


CC BY-SA 3.0
2015-01-31T10:11:51.677
5661
2015-01-31T10:11:51.677
7887
5651
answer