Mungkinkah mengubah URL untuk jenis posting biasa tanpa memengaruhi URL jenis posting khusus lainnya?

9

Dilema

Saya memiliki beberapa jenis pos khusus:

  • Item Portofolio
  • Testimoni
  • Tanya Jawab

Struktur URL untuk jenis posting khusus ini adalah:

  • mysite.com/ portfolio / nama-pos-ubahsuaian
  • mysite.com/ testimonial / nama-pos-ubahsuaian
  • mysite.com/ faq / nama-pos-ubahsuaian

Saya ingin menggunakan tipe posting WordPress bawaan yang normal untuk mengontrol entri blog kami, dan membuat URL untuk setiap entri blog seperti ini:

  • mysite.com/ blog / nama-posting

Jika saya pergi ke Pengaturan> Permalinks dan sesuaikan struktur URL menjadi seperti ...

/blog/%postname%/

... maka URL untuk semua jenis posting saya terpengaruh, yang menghasilkan:

  • mysite.com/ blog / portfolio / nama-custom-post
  • mysite.com/ blog / testimonial / nama-custom-post
  • dll ...

Pertanyaan

Apa yang ingin saya ketahui - apakah mungkin untuk menyesuaikan struktur URL untuk jenis posting WordPress bawaan tanpa memengaruhi struktur URL dari jenis posting khusus lainnya?

Satu-satunya cara saya melihat untuk menyelesaikan dilema saya adalah membuat jenis posting kustom lain yang disebut "Blog." Ini sepertinya boros, karena saya tidak akan menggunakan tipe tulisan WordPress bawaan sama sekali.

Jika ada yang membutuhkannya, The Why

Jika ada yang bertanya-tanya mengapa saya sangat membutuhkan "blog" di URL, itu karena kami menggabungkan blog kami ke dalam instalasi yang sama dengan situs kami, dan ingin menjaga URL tetap utuh sehingga kami tidak kehilangan jus Google yang berharga.

Bantuan apa pun sangat dihargai - terima kasih!

Ryan
sumber
Saya baru saja menanyakan pertanyaan yang sama ini hampir kata demi kata, senang saya menemukan ini, terima kasih
JasonDavis

Jawaban:

14

Anda dapat melakukan ini pada pendaftaran jenis pos kustom.

1) Atur permalink default Anda di admin WordPress ke struktur yang Anda inginkan misalnya:

/ blog /% postname%

2) Tambahkan parameter "slug" dan "with_front" ke array penulisan ulang di fungsi register_post_type. "slug" haruslah nama tipe tulisan Anda.

  $args = array(
    // ...
    'rewrite' => array(
        'slug' => 'your_post_type',
        'with_front' => false
    ),
    // ...
  ); 
  register_post_type('your_post_type',$args);

Ini harus menghasilkan aturan penulisan ulang berikut:

Pos Default: http://example.com/blog/%postname%
Halaman Default: http://example.com/%postname%
Jenis Posting Kustom: http://example.com/your_post_type/%postname%

EDIT

Parameter "siput" adalah opsional. Jika Anda tidak menyetelnya, nama jenis pos khusus Anda digunakan. Lihatlah referensi fungsi tentang register_post_type: http://codex.wordpress.org/Function_Reference/register_post_type

rofflox
sumber
Anda benar-benar pria itu. Ini bekerja dengan sempurna; Terima kasih!
Ryan
@ rofflox. Silakan lihat pertanyaan ( wordpress.stackexchange.com/questions/52471/... ) ini. Saya mencoba jawaban Anda tetapi itu tidak membantu saya.
Rata
0

Alternatif - Anda dapat mengatur pengalihan 301 permanen. Ini akan mengirim orang ke tautan yang benar dan membuat jus Google Anda tetap utuh. Saya tidak tahu jawaban untuk pertanyaan spesifik Anda.

mrtsherman
sumber
Terima kasih mrtsherman. Saya bertanya kepada orang SEO kami tentang melakukan itu, dan saya diberitahu bahwa Anda kehilangan sedikit jus Google dengan melakukan pengalihan 301. Saya ingin tidak kehilangan apa pun, tetapi jika semuanya gagal saya mungkin hanya pergi dengan rute ini.
Ryan
@Ryan - +1 lucu perusahaan saya hanya diminta untuk melakukan hal yang sama persis seperti sore kemarin ini. Semoga ada yang datang.
mrtsherman