将插件修改移到插件文件之外

时间:2018-11-23 14:17:22

标签: php wordpress

我正在使用名为wp show posts的插件来列出页面上特定类别的帖子。我还使用Advanced Custom Fields,通过它我向所有帖子(活动的,新的和/或关闭的)添加了元值。我修改了wp show posts插件,以在列表视图中显示每个帖子标题上的元数据值。

                    // The title
                if ( $settings[ 'include_title' ] || ( $settings[ 'include_author' ] && 'below-title' == $settings[ 'author_location' ] ) || ( $settings[ 'include_date' ] && 'below-title' == $settings[ 'date_location' ] ) || ( $settings[ 'include_terms' ] && 'below-title' == $settings[ 'terms_location' ] ) ) : ?>

          <?php if( get_field('new') ): ?>
             <h2 class="new"><?php the_field('new'); ?></h2>
          <?php endif; ?>    
          <?php if( get_field('active') ): ?>
             <h2 class="active"><?php the_field('active'); ?></h2>
          <?php endif; ?>
          <?php if( get_field('closed') ): ?>
             <h2 class="closed"><?php the_field('closed'); ?></h2>
          <?php endif; ?>

        <header class="wp-show-posts-entry-header">

您可以看到我在title函数和header函数之间添加的代码。

现在,我已经修改了插件,将无法更新它。

我可以在哪里放置此代码,使其不会出现在插件文件中?

1 个答案:

答案 0 :(得分:0)

WP Show Posts有一个名为wpsp_before_title的动作挂钩,可用于在标题之前插入内容:

/**
 * Adds ACF data before the heading.
 *
 * @param array $settings
 */
function wpsp_show_acf_data( $settings ){
    <?php if( get_field('new') ): ?>
        <h2 class="new"><?php the_field('new'); ?></h2>
    <?php endif; ?>

    <?php if( get_field('active') ): ?>
        <h2 class="active"><?php the_field('active'); ?></h2>
    <?php endif; ?>

    <?php if( get_field('closed') ): ?>
        <h2 class="closed"><?php the_field('closed'); ?></h2>
    <?php endif; ?>
}
add_action( 'wpsp_before_title', 'wpsp_show_acf_data' );

将其添加到主题的functions.php文件(或独立插件)中,即可正常工作。

请记住撤消对插件所做的修改,因为您将不再需要它们。