WP-Addon将名称和徽标从合作伙伴转移到小部件
#网络开发人员 #php #wordpress #plugin

我想编写一个与astoundify.com一起使用的joibify主题的插件,该插件将名称和徽标从合作伙伴转移到小部件。我想有一个选项,可以让我将合作伙伴洛格斯放到运行WP-Jobmanager和Jobify-theme的网站上。如果这适合小部件,那会很好。

好吧,我已经沉思了一段时间,最后以为我们可以这样做:

要在我的网站上显示合作伙伴徽标,该网站运行WP作业经理并乔布里(Jobify)主题,我们可以创建一个自定义的窗口小部件,显示徽标。我已经考虑过,我想这些步骤是必要的:

首先,我们通过将以下代码添加到您的functions.php文件:
来为合作伙伴创建自定义帖子类型

function create_partner_post_type() {
    register_post_type( 'partner',
        array(
            'labels' => array(
                'name' => __( 'Partners' ),
                'singular_name' => __( 'Partner' )
            ),
            'public' => true,
            'has_archive' => true,
            'menu_icon' => 'dashicons-heart',
        )
    );
}
add_action( 'init', 'create_partner_post_type' );

此代码将在WordPress Admin菜单中创建一种新的帖子类型,称为“合作伙伴”。

  1. **通过安装和激活高级自定义字段插件(link:)来添加合作伙伴徽标**和网站URL的自定义字段。
    现在,我们必须创建一个新的字段组,并为合作伙伴徽标添加一个字段和网站URL的另一个字段。

  2. 在此步骤中,我们必须**创建一个自定义窗口小部件**,通过将以下代码添加到您的functions.php文件:
    来显示我们的合作伙伴徽标


class Partner_Widget extends WP_Widget {

    function __construct() {
        parent::__construct(
            'partner_widget', 
            __( 'Partner Logos', 'text_domain' ), 
            array( 'description' => __( 'Display partner logos', 'text_domain' ), ) 
        );
    }

    public function widget( $args, $instance ) {
        $partners = get_posts( array(
            'post_type' => 'partner',
            'posts_per_page' => -1,
        ) );

        echo $args['before_widget'];
        if ( ! empty( $instance['title'] ) ) {
            echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
        }

        echo '<div class="partner-logos">';
        foreach ( $partners as $partner ) {
            $logo = get_field( 'partner_logo', $partner->ID );
            $url = get_field( 'partner_url', $partner->ID );
            if ( $logo ) {
                echo '<a href="' . $url . '"><img src="' . $logo['url'] . '" alt="' . $logo['alt'] . '"></a>';
            }
        }
        echo '</div>';

        echo $args['after_widget'];
    }

    public function form( $instance ) {
        $title = ! empty( $instance['title'] ) ? $instance['title'] : __( 'Partners', 'text_domain' );
        ?>
        <p>
            <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label> 
            <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>">
        </p>
        <?php 
    }

    public function update( $new_instance, $old_instance ) {
        $instance = array();
        $instance['title'] = ( ! empty( $new_instance['title'] ) ) ? sanitize_text_field( $new_instance['title'] ) : '';
        return $instance;
    }
}

function register_partner_widget() {
    register_widget( 'Partner_Widget' );
}
add_action( 'widgets_init', 'register_partner_widget' );


*如何使用此方法: *
要使用此小部件,我们需要为合作伙伴创建自定义帖子类型,并使用高级自定义字段插件为合作伙伴徽标和网站URL添加自定义字段。完成此操作后,我们可以将合作伙伴添加为帖子及其徽标和网站URL作为自定义字段。

然后,转到外观>小部件,然后将“伙伴徽标”小部件拖到所需的小部件区域。我们可以输入小部件的标题,它将在小部件中显示所有与其网站URL的伙伴徽标。