如何在单击媒体库中的项目时直接转到“编辑更多详细信息”?

时间:2014-11-20 作者:SinisterBeard

默认情况下,当我单击媒体库中的某个项目时,会转到附件详细信息页面,例如:。.../wp-admin/upload.php?item=65.

我需要编辑什么才能直接进入“编辑更多详细信息”页面?E、 g。.../wp-admin/post.php?post=65&action=edit

我认为这就像更改href指向的位置一样简单-但那里似乎没有a href!我假设链接是以不同的方式生成的?

3 个回复
最合适的回答,由SO网友:RRikesh 整理而成

从…起/wp-includes/script-loader.php:

$scripts->add( \'media-grid\', "/wp-includes/js/media-grid$suffix.js", array( \'media-editor\' ), false, 1 );
发件人wp-admin/upload.php:

wp_enqueue_script( \'media-grid\' );
wp_enqueue_script( \'media\' );
wp_localize_script( \'media-grid\', \'_wpMediaGridSettings\', array(
    \'adminUrl\' => parse_url( self_admin_url(), PHP_URL_PATH ),
) );
因此,我们可以尝试注销首字母media-grid.js 文件并加载我们自己的版本。这可以通过插件完成:

<?php
/**
 * Plugin Name: Change Media Grid link
 * Plugin URI: http://wordpress.stackexchange.com/q/168981/17305
 */

add_action( \'admin_enqueue_scripts\', \'loadmyscriptinstead_168981\' );

function loadmyscriptinstead_168981 (){
    wp_deregister_script( \'media-grid\' );

    wp_register_script( \'media-grid\', plugin_dir_url( __FILE__ ) . \'media-grid.js\', array( \'media-editor\' ), false, 1 );

    wp_localize_script( \'media-grid\', \'_wpMediaGridSettings\', array(
            \'adminUrl\' => parse_url( self_admin_url(), PHP_URL_PATH ),
        ) );

}
插件现在将加载media-grid.js 在插件文件夹中找到文件。

Disclaimer: I have no experience in Backbone, so the following is just a PoC.

这会执行此操作,但会在导航到编辑页面之前加载模式。有骨干技能的人可能会找到更干净的解决方案。

将第490行更改为:

// Update browser url when navigating media details
if ( this.model ) {
    this.gridRouter.navigate( this.gridRouter.baseUrl( \'?item=\' + this.model.id ) );
}
收件人:

// Update browser url when navigating media details
if ( this.model ) {
    this.gridRouter.navigate( this.gridRouter.baseUrl( \'?item=\' + this.model.id ) );

    var currentLocation = location.href;
    //replace upload.php by post.php
    var newRoute = currentLocation.replace(\'upload.php\', \'post.php\');
    //replace item ?item= by ?post=
    newRoute = newRoute.replace(\'?item=\', \'?post=\');
    newRoute += \'&action=edit\';

    window.location = newRoute;
}

SO网友:Jeppe

您将更改wordpress后端,更新时这些更改将丢失。

我建议您按下此按钮:http://i.imgur.com/5Ce3MzH.png(手头只有一个丹麦装置,但看起来应该是一样的)

这将为您提供一个详细视图,该视图中的所有链接都将指向“更多详细信息”页面。

希望这能有所帮助!

SO网友:JHoffmann

要修改的链接是通过文件中的Javascript生成的/wp-includes/js/media-grid.js (通常加载缩小版本:/wp-includes/js/media-grid.min.js). 第314行(在Wordpress 4.0.1中):

313:    routes: {
314:        \'upload.php?item=:slug\':    \'showItem\',
315:        \'upload.php?search=:query\': \'search\'
316:    },
您可以尝试将其修改为:

313:    routes: {
314:        \'post.php?action=edit&post=:slug\':    \'showItem\',
315:        \'upload.php?search=:query\': \'search\'
316:    },
但我并没有亲自尝试@Jeppe认为此修改存在问题是正确的,因为更新将覆盖对所做的任何更改。js文件。

结束