繁体   English   中英

如何在WordPress中添加帖子的操作链接?

[英]How are action links for posts added in WordPress?

某些WordPress插件会将鼠标悬停在“所有帖子”部分中的帖子名称上时,会显示该迷你菜单的链接。 就是我正在谈论的内容,例如从缓存或克隆中清除。

如何添加我自己的?

您使用add_filter钩子

因此,例如,如果您想要一个链接来搜索Google的页面标题。

将此添加到您的functions.php

function search_google($actions, $page_object)
{
   $actions['google_link'] = '<a href="http://google.com/search?q=' . $page_object->post_title . '" class="google_link">' . __('Search Google for Page Title') . '</a>';

   return $actions;
}

add_filter('page_row_actions', 'search_google', 10, 2);

自定义帖子类型

add_filter('page_row_actions', 'search_google', 10, 2);
function search_google($actions, $post)
{
    if ($post->post_type =="YOUR_POST_TYPE"){
   $actions['google_link'] = '<a href="http://google.com/search?q=' . $page_object->post_title . '" class="google_link">' . __('Search Google for Page Title') . '</a>';

   return $actions;
    }
}

更多示例可以在这里找到

旧版本不再起作用。

现在使用这个:

add_filter('post_row_actions', 'search_google', 10, 2);
function search_google($actions, $post) {
    $actions['google_link'] = '<a href="http://google.com/search?q=' . $post->post_title . '" class="google_link">' . __('Search Google for Page Title') . '</a>';
    return $actions;
}

对于自定义帖子类型:

add_filter('post_row_actions', 'search_google', 10, 2);
function search_google($actions, $post) {
    if ($post->post_type =="YOUR_POST_TYPE"){
        $actions['google_link'] = '<a href="http://google.com/search?q=' . $post->post_title . '" class="google_link">' . __('Search Google for Page Title') . '</a>';
        return $actions;
    }
}

在我的情况下,我想通过在新选项卡中打开editview来更改当前链接的行为,并添加特定于Divi Builder主题的我自己的链接。 我希望这适用于页面,帖子和所有自定义帖子类型。

因为我将这一更改同时应用于页面和帖子,所以我必须同时执行post_row_actionspage_row_actions add_filter操作。

这是添加到我的子主题functions.php文件中的代码。

/* Modify row actions */
/* Modify row actions */
/* Modify row actions */

// Open Edit in new
function edit_new_tab( $actions, $page_object ) {
    $actions['edit'] = '<a href="/wp-admin/post.php?post=' . $page_object->ID . '&action=edit" target="_blank">' . __( 'Edit' ) . '</a>';

    return $actions;
}
add_filter( 'post_row_actions', 'edit_new_tab', 10, 2 );
add_filter( 'page_row_actions', 'edit_new_tab', 10, 2 );

// Open View in new
function view_new_tab( $actions, $page_object ) {
    $actions['view'] = '<a href="' . get_permalink() . '" target="_blank">' . __( 'View' ) . '</a>';

    return $actions;
}
add_filter( 'post_row_actions', 'view_new_tab', 10, 2 );
add_filter( 'page_row_actions', 'view_new_tab', 10, 2 );

// Divi Builder in new
function add_divi_link( $actions, $page_object ) {
    $actions['add_divi_link'] = '<a href="' . get_permalink() . '?et_fb=1&PageSpeed=off" target="_blank">' . __( 'Divi Builder' ) . '</a>';

    return $actions;
}
add_filter( 'post_row_actions', 'add_divi_link', 10, 2 );
add_filter( 'page_row_actions', 'add_divi_link', 10, 2 );

在此代码, view$actions['view']匹配一个内置的行类型。 因此,行类型view将被相应的代码覆盖。 这也适用于edit 要查看行类型及其在实例中的显示方式,您可以检查页面的源代码,并注意要修改的链接周围的<span> <span>的类将是您将在$actions['span_class_goes_here']使用的名称。 因此, $actions['edit']将确定Edit链接将被修改。

$actions['add_divi_link']的情况下, add_divi_link在我的场景中不存在,因此它将作为新的行动作添加。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM