飞流 发表于 2025-10-10 17:01:29

子比主题 – 文章付费模块单独位置教程

这是一款子比主题为每篇文章单独设置付费模块的显示位置,而不再局限于全局设置,原本的子比主题是全局生效显示的位置,教大家怎么去单独每篇文章不同的位置,话不多说直接开始!


部署教程
定位:zibll/zibpay/functions/zibpay-post.php,第240行左右,可以搜索 $pay_box_position 定位。按图删除这几行代码,然后替换成下面的代码。

// 修改付费模块位置逻辑,支持单篇文章自定义设置
function zibpay_get_post_box_position($post_id = 0) {
    if (!$post_id) {
      global $post;
      $post_id = $post ? $post->ID : 0;
    }
    $pay_mate = get_post_meta($post_id, 'posts_zibpay', true);
    $custom_position = !empty($pay_mate['pay_box_position']) ? $pay_mate['pay_box_position'] : '';
    $pay_box_position = $custom_position ? $custom_position : _pz('pay_box_position', 'top');
    $positions = array(
      'box_top'    => 'zib_single_before',
      'top'      => 'zib_single_box_content_before',
      'bottom'   => 'zib_article_content_after',
      'box_bottom' => 'zib_single_after',
    );
    return isset($positions[$pay_box_position]) ? $positions[$pay_box_position] : 'zib_single_box_content_before';
}
function zibpay_add_post_pay_content_action() {
    global $post;
    if (is_single() && $post) {
      $pay_mate = get_post_meta($post->ID, 'posts_zibpay', true);
      if (!empty($pay_mate['pay_type']) && 'no' != $pay_mate['pay_type']) {
            $position = zibpay_get_post_box_position($post->ID);
            add_action($position, 'zibpay_posts_pay_content', 1);
      }
    }
}
add_action('wp', 'zibpay_add_post_pay_content_action');
// 新增付费模块位置设置
      array(
            'dependency' => array('pay_type', '!=', 'no'),
            'title'      => '模块位置',
            'id'         => 'pay_box_position',
            'type'       => 'radio',
            'default'    => '',
            'inline'   => true,
            'desc'       => '设置此文章付费模块的显示位置,留空则使用全局设置',
            'options'    => array(
                ''         => '使用全局设置',
                'box_top'    => '文章模块上方',
                'top'      => '文章内容顶部',
                'bottom'   => '文章内容底部',
                'box_bottom' => '文章模块下方',
            ),
      ),

页: [1]
查看完整版本: 子比主题 – 文章付费模块单独位置教程