自定义功能通过" Add_Action"不工作

时间:2012-12-02 00:14:39

标签: php wordpress function

我在使用“add_action”调用函数时遇到问题。这是我的过程:

我在我的functions.php(最后一个add_action)中添加了“muimedia_post_video”:

/* Posts */
// muimedia_before_post_loop
add_action( 'muimedia_post_before_entry_content', 'muimedia_post_entry_meta', 10);
add_action( 'muimedia_post_entry_summary', 'muimedia_post_entry_summary', 10);
add_action( 'muimedia_post_after_entry_content', 'muimedia_post_entry_data', 10);
add_action( 'muimedia_post_no_results_not_found', 'muimedia_post_no_results_not_
found',   10);
add_action( 'muimedia_after_post_loop', 'muimedia_post_pagination', 10);
add_action( 'muimedia_post_video', 10);

我制作了实际的muimedia_post_video动作函数(在contentextensions.php中):

/* muimedia_post_video */
if ( !function_exists( 'muimedia_post_video' ) ) {
    function muimedia_post_video() {
        ?>
        <div class="video-entry-summary">
            <?php if (has_post_thumbnail()){ ?>
            <a href="<?php the_permalink() ?>" 
title="<?php the_title_attribute( array('before' => esc_attr__( 'Permalink: 
', 'muimedia' ), 'after' => '')); ?>" rel="bookmark"><?php the_post_thumbnail();
?></a>
            <?php } ?>

            <h1 class="entry-title"><a href="<?php the_permalink(); ?>" 
            title="<?php the_title_attribute( array('before' => esc_attr__
            ( 'Permalink: ', 'muimedia' ), 'after' => '')); ?>" rel="bookmark">
            <?php the_title(); ?></a></h2>

<div class="entry-meta">
<span class="meta-date"><?php echo get_the_date(); ?></span>
</div>

        <?php the_excerpt(); ?>...

        <div id="disquscomments"><a href="<?php comments_link(); ?  >#disqus_thread">
        Comments</a></div>

    </div>
    <?php 
   }
}

然后我在任何php文件中调用该函数,如下所示:

<?php do_action('muimedia_post_video'); ?>

我不知道为什么,但这并没有显示任何帖子。 :(如果我使用主题附带的动作,如“do_action('post_entry_summary')”它显示相应类别的所有帖子很好......但理论上它应该与我的自定义do_action一起工作因为我所做的一切复制并粘贴了post_entry_summary代码,更改了它的名称,并在我的主题函数中添加了一个新的do_action。

让这项工作变得非常重要,我不知道为什么我自己的自定义功能无效。我已经完成了所有事情。任何帮助都会受到赞赏,所以如此如此,所以......所以(如此)太多了! :)

2 个答案:

答案 0 :(得分:2)

更改:

add_action( 'muimedia_post_video', 10);

为:

add_action( 'muimedia_post_video', 'muimedia_post_video', 10);

做了这个伎俩。 :)

答案 1 :(得分:2)

add_action需要以下参数....

add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1);

所以在你的上一个函数中你没有添加函数。您需要添加这些功能才能使其正常工作。

参考:http://codex.wordpress.org/Function_Reference/add_action