1

我无法使用“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。

我得到这个工作真的很重要,我不知道为什么我自己的自定义函数不起作用。据我所知,我所做的一切都是正确的。任何帮助都将不胜感激,如此如此如此,如此如此……如此(如此)多!:)

4

2 回答 2

2

改变:

add_action( 'muimedia_post_video', 10);

到:

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

成功了。:)

于 2012-12-02T00:25:33.913 回答
2

add_action 需要以下参数....

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

因此,在您的最后一个函数中,您没有添加该函数。您需要添加该功能以使其工作。

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

于 2014-03-30T17:25:17.147 回答