Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在elementor SELECT2控件中显示帖子名称和帖子链接_Php_Wordpress_Wordpress Theming_Elementor - Fatal编程技术网

Php 如何在elementor SELECT2控件中显示帖子名称和帖子链接

Php 如何在elementor SELECT2控件中显示帖子名称和帖子链接,php,wordpress,wordpress-theming,elementor,Php,Wordpress,Wordpress Theming,Elementor,我在这里创建了一个elementor控件,我显示了所有帖子列表,但是当我在受保护函数render()中显示帖子标题时,它会显示帖子ID而不是帖子名称,我想显示帖子名称,还想在中获得该帖子的永久链接 $options=array(); $posts=获取_posts(数组( “post_类型”=>“数字卡” ) ); foreach($key=>$post){ $options[$post->ID]=获取标题($post->ID); } $this->add_控件( “职位名称”, [ 'labe

我在这里创建了一个elementor控件,我显示了所有帖子列表,但是当我在
受保护函数render()
中显示帖子标题时,它会显示帖子ID而不是帖子名称,我想显示帖子名称,还想在
中获得该帖子的永久链接

$options=array();
$posts=获取_posts(数组(
“post_类型”=>“数字卡”
) );
foreach($key=>$post){
$options[$post->ID]=获取标题($post->ID);
}
$this->add_控件(
“职位名称”,
[
'label'=>\('Select Posts','plugin domain'),
“label_block”=>(“bool”),
'type'=>\Elementor\Controls\u Manager::SELECT,
“多个”=>true,
“选项”=>$options,
]
);
受保护的函数render(){
$settings=$this->get_settings();
$show_title=$settings['post_name'];
?>

因此,您想要获取所有自定义
post\u类型的所有
ID
post\u标题
s
“数字\u卡”?!您不需要
$key
获取\u标题()
获取控件类型的选项值
控件管理器::SELECT2
。如果希望编辑器面板上的选择字段全宽,可以将
'label\u block'=>设置为true

受保护功能中的部件\u寄存器\u控件()

因此,现在所选帖子的
ID
s将保存在控制数据
posts

要显示
post_title
s和相关帖子的链接,可以通过帖子的
ID
获取值,这些值作为数组存储在
$settings['posts']

受保护函数render()中的部分

$settings=$this->get_settings();
$posts=$settings['posts'];
foreach($posts作为$post){
echo获得标题($post);
?>

你能解析@Bhautik吗
$options = array();

$posts = get_posts( array(
    'post_type'  => 'digital_card'
) );

foreach ( $posts as $key => $post ) {
    $options[$post->ID] = get_the_title($post->ID);
}
    
        
        $this->add_control(
            'post_name',
            [
                'label' => __( 'Select Posts', 'plugin-domain' ),
                'label_block' => ('bool'),
                'type' => \Elementor\Controls_Manager::SELECT,
                'multiple' => true,
                'options' => $options,
                
            ]
        );

protected function render() {

        $settings = $this->get_settings();
        $show_title = $settings['post_name'];
        ?>
        
        <?php echo $show_title; ?>
        <a href="<?php the_permalink(); ?>">Read More</a>
        <?php

    }


    

}
$options = [];

$posts = get_posts( [
        'post_type'  => 'digital_card'
] );

foreach ( $posts as $post ) {
    $options[ $post->ID ] = $post->post_title;
}

$this->add_control(
    'posts',
    [
        'label' => __( 'Select Posts', 'your-plugin-domain' ),
        'type' => \Elementor\Controls_Manager::SELECT2,
        'label_block' => true,
        'multiple' => true,
        'options' => $options,      
    ]
);
$settings = $this->get_settings();
$posts = $settings[ 'posts' ];
foreach( $posts as $post ) {
    echo get_the_title( $post );
    ?>
    <a href="<?php echo get_permalink( $post ); ?>">Read More</a>
    <?php
}