能够在某些页面上更改disqus标识符

时间:2012-02-16 11:54:17

标签: php javascript wordpress disqus

我正在使用wordpress插件。

我在插件文件“comments.php”中找到了定义页面标识符的代码:

var disqus_identifier = '<?php echo dsq_identifier_for_post($post); ?>';

到目前为止我想出的是用以下内容替换它:

var disqus_identifier = '<?php echo get_post_meta($post->ID, 'dis_ident_field', true); ?>';

这意味着它会从Wordpress的一个名为dis_ident_field的自定义字段中获取它的disqus_identifier,但我很担心这种方法。对于我没有填充此字段的页面,我现在在页面源中的javascript中根本没有标识符。

有人可以解释为什么没有id是坏的,因为评论仍然适用于所有这些页面,所以它从某个地方得到一个id。

2 个答案:

答案 0 :(得分:2)

你可以使用这样的东西在使用之前检查它是否设置或将其设置为页面ID。

<?php 
//Attempt to get identifier
$disqus = get_post_meta($post->ID, 'dis_ident_field', true);
//if isset & not blank else use $post->ID
$disqus = (!empty($disqus)) ? $disqus : $post->ID;
?>

var disqus_identifier = '<?=$disqus?>';

答案 1 :(得分:0)

我必须从我的旧网站获得一些已经在Disqus中的乐队评论到我的新WordPress乐队网站。我只想在我们的主页上进行评论,所以这就是我所做的......

我查看了旧网站上的代码,并从中获取了disqus_identifier值。

我定义了一个名为“dsq_identifier”的自定义字段并将其添加到我的自定义页面模板中,并从旧网站中为其提供了disqus_identifier值。

我是WordPress和PHP的新手,我确信这是一个坏主意,但我需要完成这项工作,所以......

我通过在所有var初始化之后添加此代码来编辑Disqus插件的comment.php:

<?php if ( get_post_meta($post->ID, 'dsq_thread_id', true) ) : ?>
  disqus_identifier = '<?php echo get_post_meta($post->ID, 'dsq_identifier', true); ?>';
<?php endif; ?>

由于我只想在我们的主页上显示评论评论,该评论有自定义字段“dsq_identifier”,我修改了我的自定义模板(由多个页面使用)。这是代码:

<?php if ( get_post_meta($post->ID, 'dsq_identifier', true) ) : ?>
  <?php comments_template(); ?> 
<?php endif; ?>

BAAAMMM!第一次工作。

如果您对如何在不更改Disqus插件代码库的情况下使其工作有任何想法,那就会摇滚。我需要退后一步,在新网站发布后的几天内真的想一想。