开发者社区> 问答> 正文

如何在wordpress主题里输出插件的内容?

 //show contribute meta data
        function contribute_metadata( $content ){
                if( is_single() ){
                        $DXC_options = get_option( 'DX-Contribute-options' );
                        $pid = get_the_ID();
                        $metas = get_post_meta( $pid, '_DX_Contribute', true );
                        if( $DXC_options['meta-on'] = 'on' && $metas ){
                                $avatar = get_avatar( $metas['email'], 25 );
                                $url = ($metas['site'] == 'true') ? '' : $metas['site'];
                                $user = $metas['user'];
                                $site = ( $url ) ? '<a href="'.$url.'" rel="external nofollow" target="_blank">'.$user.'</a>' : '<a rel="nofollow" style="color: #EF4372;">'.$user.'</a>';
                                $style = '<style type="text/css">#contribute-metadata{line-height:25px;margin:10px 0;} #contribute-metadata img{display:block;float:left;margin-right:5px;}</style>';
                                $meta_code = '<div id="contribute-metadata">'.$avatar.'<div id="contribute-site">'.$site.' 提交于'.get_the_time( 'Y-m-d H:i:s' ).'</div></div><div style="clear:both;"></div>';
                                if( $DXC_options[ 'metapo' ]=='head' ){
                                        $content = $style.$meta_code.$content;
                                }
                                else $content .= $style.$meta_code;                        
                        }
                }
                return $content;
        }

这一段是插件内的内容,他将自动在文章页面内重输出文章内容
但是我想在首页指定地方输出$user的内容怎么做到呢

展开
收起
小旋风柴进 2016-03-06 10:56:00 2227 0
1 条回答
写回答
取消 提交回答
  • 步骤1
    首先打开ajax-comment-pager文件夹里的ajax-comment-pager.php文件,这个文件就是整个插件的核心。我们可以看到细心的MG12对插件的每一个模块都做了注释。

    我们要做的是先分析这个插件是怎么运行的,程序结构是怎样的。

    下面解释一下各个模块的作用:
    l10n:提供插件的本地化语言,在整合是可以忽略;
    options:用于配置插件参数;
    AJAX function:处理AJAX请求,并返回相应的结果,核心中的核心;
    add to WordPress:加载插件运行所需的JS脚本和CSS样式文件。
    到这里,插件的运行机制已经呼之欲出。
    首先由add to WordPress加载所需的文件->在点击评论翻页时发出AJAX请求->AJAX function模块获取options里的参数,处理AJAX请求并返回结果->add to WordPress事先加载的脚本把AJAX function返回的结果插入到评论列表位置。

    步骤2
    在充分了解插件的结构以后,我们开始提取所需的代码,先把cpage_ajax和commentpager_head改名,我给这两个函数名同意加上了“bolo_”前缀。这一步是为了避免和原来的插件产生冲突,改名的方法推荐先复制原来的函数名,改名后用新函数名全部替换原函数名。
    接下来把ajax-comment-pager.css和ajax-comment-pager.js复制到主题文件夹里。水平高一点的童鞋们,在这一步就可以整合css和js文件了,如果你不会整合这两个文件则需要在主题的header.php里加载这两个文件,并且在加载ajax-comment-pager.js前需要先输出以下代码:

    
    <script type="text/javascript">//< ![CDATA[ 
    var ajaxCommnetsPagerCommentsId = "thecomments" //thecomments是评论列表的ID,请根据自己的主题自行修改 
    var ajaxCommnetsPagerAjaxLoader = "Loading..." 
    //]]></script>

    步骤3
    把 AJAX function 模块的所有代码复制到主题的functions.php里,我们还需要修改一下。
    我们的目的是直接把最适合我们主题的参数整合进去,所以options,callback method name 和 type 这几部分都可以删去,并充新补上$callback和$type这两个变量。

    $callback是自定义评论样式的名字,一般是custom_comment,请自行查看主题配置。
    $type是翻页是需要显示的内容,只显示评论则是&type=comment,只显示pingback则是&type=pings,两者都显示则留空。
    在这里我设置为:

    
    $callback = 'custom_comment'; //我的主题里评论样式名为custom_comment 
    $type = '&type=comment'; //只显示评论

    步骤4
    在打开comments.php,在合适的地方加上:

    
    <span id="cp_post_id">< ?php echo $post->ID; ?></span>

    如果你不知道什么地方是“合适的地方”,那就把这句代码加到任一个

    前吧。
    2019-07-17 18:54:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
QQ移送页面框架优化实践 立即下载
QQ移动页面框架优化实践 立即下载
基于浏览器的实时构建探索之路--玄寂 立即下载