2016-06-22 9 views
0

私はWordPressブログでGoogle Plusのコメントを含むボックスを作成しようとしています。私のブログはhttpからhttpsにjan/2016で移行したので、移行日前の投稿日付が異なるpermalinkのコメントボックスに電話したいと思っています。WordPressショートコード機能 - 返信でエコーを置き換える

これは、元のG +のコメントボックスです:

<div class="g-comments" 
    data-href="<?php the_permalink(); ?>" 
    data-width="700" 
    data-first_party_property="BLOGGER" 
    data-view_type="FILTERED_POSTMOD"> 
</div> 

私はG +のコードはジェネシスシンプルなフックと、元のWPのコメントの前にループに配置され、StudioPressからジェネシスを使用しています。そして、これは私が書いたものであり、内容の前に現れます。エコーからリターンに移動するにはどうすればよいですか?貴重な助け?

<?php 
$permalink = get_permalink(); 
$now = time(); 
$compare_time = mktime(0, 0, 0, 1, 1, 2016); 
$post_time = get_post_time('U'); 
$url03 = str_replace('https://', 'http://', $permalink); 

if ($post_time < $compare_time) { 
echo '<div class="g-comments" data-href="'; 
echo $url03 . '"'; 
echo ' data-width="700" '; 
echo 'data-first_party_property="BLOGGER" '; 
echo 'data-view_type="FILTERED_POSTMOD">'; 
echo '</div> '; 
} 
else { 

echo '<div class="g-comments" data-href="'; 
echo the_permalink() . '"'; 
echo ' data-width="700" '; 
echo 'data-first_party_property="BLOGGER" '; 
echo 'data-view_type="FILTERED_POSTMOD">'; 
echo '</div> '; 
} 
?> 
+0

は、だからあなたは、HTTPからHTTPSにURLを変換しますか?私はあなたのstr_replaceが後方にあるかもしれないと思います。 – jlemm45

+0

今、ブログではHTTPSを使用しています.2014年1月1日以前にHTTPを使用していました。 G +コメントボックスで正しいパーマリンクを使用したいと思っています - > $ url3 –

+0

なぜあなたはそれをしたいのですか?その日以前に投稿したコンテンツにhttpsでアクセスできることを確認してください。 –

答えて

0

HTML文字列を変数に保存してその変数を返すだけで済みます。このようなものはうまくいくはずです。

<?php 
function google_comments_html() { 
    $permalink = get_permalink(); 
    $compare_time = mktime(0, 0, 0, 1, 1, 2016); 
    $post_time = get_post_time('U'); 

    if ($post_time < $compare_time) { 
    $permalink = str_replace('https://', 'http://', $permalink); 
    } 

    $html = <<<HTML 
    <div class="g-comments" 
     data-href="$permalink" 
     data-width="700" 
     data-first_party_property="BLOGGER" 
     data-view_type="FILTERED_POSTMOD"> 
    </div> 
HTML; 

    return $html; 
} 

// Example calling the method 
echo google_comments_html(); 

最後のHTML;には、左側にスペースを入れることはできません。

+0

ありがとうアブラハム。 WordPressでは、他のものより先に印刷するので、エコーから返すように変更する必要があり、それは正しくありません。あなたのコードは私の仕事と同じように動作します。あなたが提供したコードでショートコードを作成し、ループテキスト+ショートコードを入力すると、「this is the plugin [shortcode]」です。ショートコードの内容が「this is the plugin」より前に出力されます。私はそれが正しく説明されたことを願っています。 –

+0

私は本当にあなたのコメントを理解していません。あなたがそれを変更しない限り、私の答えのメソッドは何もエコーしません。 – abraham

0

だけob_get_contentsを使用します。http://php.net/manual/en/function.ob-get-contents.php

ob_start(); 

$permalink = get_permalink(); 
$now = time(); 
$compare_time = mktime(0, 0, 0, 1, 1, 2016); 
$post_time = get_post_time('U'); 
$url03 = str_replace('https://', 'http://', $permalink); 

if ($post_time < $compare_time) { 
echo '<div class="g-comments" data-href="'; 
echo $url03 . '"'; 
echo ' data-width="700" '; 
echo 'data-first_party_property="BLOGGER" '; 
echo 'data-view_type="FILTERED_POSTMOD">'; 
echo '</div> '; 
} 
else { 

echo '<div class="g-comments" data-href="'; 
echo the_permalink() . '"'; 
echo ' data-width="700" '; 
echo 'data-first_party_property="BLOGGER" '; 
echo 'data-view_type="FILTERED_POSTMOD">'; 
echo '</div> '; 
} 

$out = ob_get_contents(); 

ob_end_clean(); 

return $out; 
関連する問題