【问题标题】:Get the featured image url of clicked post获取点击帖子的特色图片url
【发布时间】:2015-09-19 19:29:49
【问题描述】:

如何在模式中显示帖子的特色图片及其内容。

在一些类似问题的在线线程的帮助下,我尝试了这个:

<?php
    if ( has_post_thumbnail()) {
        echo '<a href="' . get_permalink($post->ID) . '" >';
            the_post_thumbnail('my_feature_image', array( 'class' => "someName" ));
        echo '</a>';
    }
?>

不幸的是,它为所有帖子返回了相同的特色图片。

在找到模态的同一个header.php 上,有以下内容(在模态 div 上方):

  //on the homepage... check for the post URL...
  //do we have a custom permalink incoming....
  $perma = false; if (isset($wp_query->query_vars['phpost_slug'])) #WHFIX 24/03/2015: 
  $perma = $wp_query->query_vars['phpost_slug'];
  if($perma){
  //we don't want to return a 404
  $wp_query->set( 'is_404', false );
  $phid = get_page_by_path($perma, OBJECT, 'post');
  $postvote = get_post_meta($phid->ID, 'epicredvote' ,true);
  $thumb = wp_get_attachment_image_src( get_post_thumbnail_id( $phid->ID ), 'single-post-thumbnail' );

  $pluginfeat = get_post_meta($phid->ID,'phog',true);
  $desc = get_post($phid->ID)->post_content;

网站链接:https://goo.gl/30a3QQ [点击帖子所在行打开模态。]

更新

我尝试删除锚标记以及这样的类,但它仍然无法正常工作:

<?php
    if ( has_post_thumbnail()) {
            the_post_thumbnail();
    }
?>

【问题讨论】:

  • 上面的代码需要在一个循环中才能工作,你是在它所在的地方运行一个循环吗?从页面内容循环中将图像 url 和内容附加到 js 对象中并简单地创建 onclick 可能会更有效。
  • @David 我不这么认为。但是对于主要帖子缩略图,上面的代码 sn-p 工作(goo.gl/30a3QQ
  • 如果你点击任何帖子文本,一个模态框会出现相关的帖子内容和标题
  • 但不幸的是,所有帖子上的图像都保持不变。
  • @David 我尝试删除锚标记以及问题更新部分中显示的类,但它一直显示相同的图像。

标签: php wordpress twitter-bootstrap custom-post-type bootstrap-modal


【解决方案1】:

您要更改的元素只是用于填充 onclick 处理程序的 html 线框,问题是,它没有包含原始图像,因此您需要添加该功能。像这样的东西应该可以工作(添加到您的页脚)

var eventTargets=document.querySelectorAll('.hunt-row');

[].forEach.call(eventTargets, function(t){
    t.addEventListener('click', function(){
        console.log('clicked');
        var img= this.querySelector('img').src;

        //bind new src to modal thumb, this is not ideal as there is only a class rather than a id...

        document.querySelector('.modal-thumb').src= img;

    }, false);
}); 

当然,我不确定它与其他点击处理程序的效果如何,您可能需要删除默认值并编写自己的内容以填充模型框 onclick。

【讨论】:

  • 首先,我要衷心感谢您耐心地帮助我与这位好先生。所以我在script标签内的页脚中添加了上述内容,不幸的是,所有帖子上仍然显示相同的图像:(
  • 控制台上的任何错误(chrome 检查元素和控制台...)?我输入了一个 console.log,所以至少你会知道事件正在触发,你可能需要 remove.listeners 并从自定义函数中填充,我快速查看了 js,但还有很多工作要做通过。
  • 尽快检查。一秒
  • Uncaught TypeError: t.addeventlistener is not a function Uncaught Error: init not called with valid version 控制台回显了这两个错误。如您所述,如何删除侦听器?
  • 对不起,eventlistener 拼写错误,应该是 .addEventListener 我在上面更新了。
猜你喜欢
  • 2012-06-30
  • 1970-01-01
  • 1970-01-01
  • 2016-08-10
  • 2019-06-26
  • 2022-07-27
  • 2023-03-31
  • 1970-01-01
  • 2013-11-08
相关资源
最近更新 更多