Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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 如何使这个WordPress插件更加优雅和快速?_Php_Wordpress_Performance_Pagespeed - Fatal编程技术网

Php 如何使这个WordPress插件更加优雅和快速?

Php 如何使这个WordPress插件更加优雅和快速?,php,wordpress,performance,pagespeed,Php,Wordpress,Performance,Pagespeed,我编写了以下插件,它将字段添加到媒体/附件条目中,并在一个短代码中返回所有信息。然而,这个解决方案工作起来非常慢,因为有更多的条目可用 我知道问题在于while循环。但是,为了了解我要实现的目标,我包含了整个代码: defined( 'ABSPATH' ) or die( 'Are you ok?' ); /** ----- ADD FIELDS IN MEDIA LIBRARY ----- **/ function additionalMediaFields( $form_fields, $p

我编写了以下插件,它将字段添加到媒体/附件条目中,并在一个短代码中返回所有信息。然而,这个解决方案工作起来非常慢,因为有更多的条目可用

我知道问题在于while循环。但是,为了了解我要实现的目标,我包含了整个代码:

defined( 'ABSPATH' ) or die( 'Are you ok?' );
/** ----- ADD FIELDS IN MEDIA LIBRARY ----- **/
function additionalMediaFields( $form_fields, $post ) {
    $form_fields['copyright_author'] = array(
        'label' => '© Autor',
        'input' => 'text',
        'value' => get_post_meta( $post->ID, 'copyright_author', true ),            
    );
    $form_fields['copyright_description'] = array(
        'label' => '© Beschreibung',
        'input' => 'text',
        'value' => get_post_meta( $post->ID, 'copyright_description', true ),           
    );
    $form_fields['copyright_website'] = array(
        'label' => '© Website',
        'input' => 'text',
        'value' => get_post_meta( $post->ID, 'copyright_website', true ),           
    );
    return $form_fields;
}
add_filter( 'attachment_fields_to_edit', 'additionalMediaFields', 10, 2 );

function storeAdditionalMediaFields( $post, $attachment ) {
    if( isset( $attachment['copyright_author'] ) )
        update_post_meta( $post['ID'], 'copyright_author', $attachment['copyright_author'] );
    if( isset( $attachment['copyright_description'] ) )
        update_post_meta( $post['ID'], 'copyright_description', $attachment['copyright_description'] );
    if( isset( $attachment['copyright_website'] ) )
        update_post_meta( $post['ID'], 'copyright_website', $attachment['copyright_website'] );
    return $post;
}
add_filter( 'attachment_fields_to_save', 'storeAdditionalMediaFields', 10, 2 );

/** ----- SHOW THEM IN ONE SHORTCODE ----- **/
function listAllCopyrightInformation ($atts, $content = null) {

    $i = 1;
    while ( $i<=20000 ) {
        $copyrightAuthor = get_post_meta($i, 'copyright_author', true );
        $copyrightDescription = get_post_meta($i, 'copyright_description', true );
        $copyrightWebsite = get_post_meta($i, 'copyright_website', true );

        if ( !empty($copyrightAuthor)) {
            if( !empty($copyrightDescription)) {
                $CopyrightEntries .= $copyrightDescription . ': ';
            }
            $CopyrightEntries .= '&copy; ';
            $CopyrightEntries .= $copyrightAuthor;
            if( !empty($copyrightWebsite)) {
                $CopyrightEntries .= ' / <a href="https://' . get_post_meta($i, 'copyright_website', true) . '" target="_blank">' . get_post_meta($i, 'copyright_website', true) . '</a> || ';
            }
        }
        $i++;
    }
    $CopyrightReturn = substr($CopyrightEntries, 0, -8);
    return $CopyrightReturn;
}

add_shortcode("show-all-copyrights", "listAllCopyrightInformation");

defined('ABSPATH')或die('yourook?');
/**-----在媒体库中添加字段------**/
函数additionalMediaFields($form_fields,$post){
$form_fields['copyright_author']=array(
'label'=>'©;Autor',
'输入'=>'文本',
'value'=>get\u post\u meta($post->ID,'copyright\u author',true),
);
$form_fields['copyright_description']=数组(
'label'=>'©;Beschreibung',
'输入'=>'文本',
'value'=>get\u post\u meta($post->ID,'copyright\u description',true),
);
$form_fields['copyright_website']=array(
“标签”=>“©;网站”,
'输入'=>'文本',
'value'=>get\u post\u meta($post->ID,'copyright\u website',true),
);
返回$form_字段;
}
添加过滤器('attachment\u fields\u to\u edit','additionalMediaFields',10,2);
函数存储AdditionalMediaFields($post$附件){
如果(isset($attachment['copyright_author']))
更新文章元($post['ID'],'copyright\u author',$attachment['copyright\u author']);
如果(isset($attachment['copyright_description']))
更新帖子元($post['ID'],'copyright\u description',$attachment['copyright\u description']);
如果(isset($attachment['copyright_website']))
更新帖子元($post['ID'],'copyright\u website',$attachment['copyright\u website']);
退回$post;
}
添加过滤器('attachment\u fields\u to\u save','storeAdditionalMediaFields',10,2);
/**-----在一个短代码中显示它们------**/
函数listAllCopyrightInformation($atts,$content=null){
$i=1;

虽然我投票结束这个问题,因为它的工作代码,它可能想在什么是20000和为什么?