子比主题 – 文章付费模块单独位置教程
这是一款子比主题为每篇文章单独设置付费模块的显示位置,而不再局限于全局设置,原本的子比主题是全局生效显示的位置,教大家怎么去单独每篇文章不同的位置,话不多说直接开始!部署教程
定位: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]